結果
| 問題 |
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'