結果
問題 | No.50 おもちゃ箱 |
ユーザー |
|
提出日時 | 2017-08-15 12:14:40 |
言語 | Nim (2.2.0) |
結果 |
WA
(最新)
AC
(最初)
|
実行時間 | - |
コード長 | 767 bytes |
コンパイル時間 | 3,548 ms |
コンパイル使用メモリ | 70,224 KB |
実行使用メモリ | 6,944 KB |
最終ジャッジ日時 | 2024-06-30 02:37:15 |
合計ジャッジ時間 | 4,585 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 4 |
other | AC * 37 WA * 1 |
コンパイルメッセージ
/home/judge/data/code/Main.nim(1, 50) Warning: Use the new 'sugar' module instead; future is deprecated [Deprecated] /home/judge/data/code/Main.nim(1, 50) Warning: imported and not used: 'future' [UnusedImport] /home/judge/data/code/Main.nim(1, 57) Warning: imported and not used: 'macros' [UnusedImport] /home/judge/data/code/Main.nim(1, 26) Warning: imported and not used: 'strscans' [UnusedImport]
ソースコード
import sequtils,strutils,strscans,algorithm,math,future,macros template get*():string = stdin.readLine() #.strip() let N = get().parseInt() A = get().split().map(parseInt).sorted(cmp,Descending) # toy <20 M = get().parseInt() B = get().split().map(parseInt).sorted(cmp,Descending) # box <20 var ans = newSeq[int]() proc check(i:int,bs:seq[tuple[vol:int,use:bool]]):void = if i == A.len(): ans &= bs.mapIt(it.use.int).sum() if ans.len() >= 15000 : echo ans.min() quit() return for j,b in bs: if b.vol < A[i] : if not b.use : break else: continue #! var nbs = bs nbs[j].vol -= A[i] nbs[j].use = true check(i+1,nbs) return check(0,B.mapIt((it,false))) if ans.len() > 0: echo ans.min() else: echo -1