結果
問題 | No.15 カタログショッピング |
ユーザー | 6soukiti29 |
提出日時 | 2017-07-26 12:05:20 |
言語 | Nim (2.0.2) |
結果 |
CE
(最新)
AC
(最初)
|
実行時間 | - |
コード長 | 1,652 bytes |
コンパイル時間 | 891 ms |
コンパイル使用メモリ | 64,512 KB |
最終ジャッジ日時 | 2024-06-30 01:46:30 |
合計ジャッジ時間 | 1,349 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge5 |
(要ログイン)
コンパイルエラー時のメッセージ・ソースコードは、提出者また管理者しか表示できないようにしております。(リジャッジ後のコンパイルエラーは公開されます)
ただし、clay言語の場合は開発者のデバッグのため、公開されます。
ただし、clay言語の場合は開発者のデバッグのため、公開されます。
コンパイルメッセージ
/home/judge/data/code/Main.nim(21, 29) Error: type mismatch: got 'seq[int]' for 'map(split(readLine(stdin), {' ', '\t', '\v', '\r', '\n', '\f'}, -1), parseInt)' but expected 'tuple'
ソースコード
import sequtils,strutils,algorithm proc `<`(x,y : seq[int]):bool = # seq[int]をsortするのに必要 for i in 0..min(x.len,y.len): if x[i] < y[i]: return true elif x[i] == y[i]: continue else: return false if x.len < y.len: return true else: return false type kumi = tuple[ku : seq[int],s : int] var N,S : int (N,S) = stdin.readline.split.map(parseInt) var P = newSeq[int](N) p : int ans = newSeq[kumi](0) for n in 0..<N: p = stdin.readline.parseInt P[n] = p if N == 1: if P[0] == S: echo S else: var A = P[0..<(N div 2)] B = P[(N div 2)..<N] Ka : seq[kumi] Ka2 = Ka Kb : seq[kumi] Kb2 = Kb kk : kumi kk = (@[],0) Ka = @[kk] Kb = @[kk] for i,a in A: Ka2 = @[] for k in Ka: Ka2.add((k.ku & @[i + 1] ,k.s + a)) Ka &= Ka2 for i,b in B: Kb2 = @[] for k in Kb: Kb2.add((k.ku & @[i + (N div 2) + 1] ,k.s + b)) Kb &= Kb2 Ka = Ka.sortedByIt(it.s) Kb = Kb.sortedByIt(it.s) Kb.reverse var p = 0 p2 = 0 for i in 0..Ka.high: while p <= Kb.high: if Ka[i].s + Kb[p].s == S: ans.add((Ka[i].ku & Kb[p].ku, Ka[i].s + Kb[p].s)) p += 1 p2 += 1 elif Ka[i].s + Kb[p].s > S: p += 1 elif Ka[i].s + Kb[p].s < S: break p -= p2 p2 = 0 ans = ans.sortedByIt(it.ku) for s in ans: echo s.ku.join(" ")