結果
問題 | No.4 おもりと天秤 |
ユーザー |
|
提出日時 | 2016-09-02 16:26:04 |
言語 | PyPy2 (7.3.15) |
結果 |
AC
|
実行時間 | 256 ms / 5,000 ms |
コード長 | 451 bytes |
コンパイル時間 | 1,447 ms |
コンパイル使用メモリ | 76,840 KB |
実行使用メモリ | 105,068 KB |
最終ジャッジ日時 | 2024-06-26 09:59:44 |
合計ジャッジ時間 | 5,245 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 23 |
ソースコード
N = input() w = sorted(map(int, raw_input().split())) s = sum(w) if s % 2: print 'impossible' exit() s /= 2 mem = {} def rec(p, acm): if (p, acm) in mem: return mem[(p, acm)] if acm == s: return True if p >= N: return False if w[p] + acm > s: return False mem[(p, acm)] = any((rec(p+1, acm+w[p]), rec(p+1, acm))) return mem[(p, acm)] print 'possible' if rec(0, 0) else 'impossible'