結果
問題 |
No.4 おもりと天秤
|
ユーザー |
|
提出日時 | 2022-10-15 15:53:20 |
言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) |
結果 |
AC
|
実行時間 | 108 ms / 5,000 ms |
コード長 | 455 bytes |
コンパイル時間 | 172 ms |
コンパイル使用メモリ | 12,544 KB |
実行使用メモリ | 10,880 KB |
最終ジャッジ日時 | 2024-06-26 19:56:34 |
合計ジャッジ時間 | 1,981 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 23 |
ソースコード
N = int(input()) W = list(map(int , input().split())) s = 0 for w in W: s += w W.sort() if s % 2: print("impossible") else: s //= 2 dp = [False for i in range(s + 1)] dp[0] = True max = 0 for i in W: #print(dp) dp2 = dp.copy() max += i for j in range(max + 1): if dp2[j] and j + i <= s: dp[j + i] = True elif j + i > s: break if dp[s]: print("possible") else: print("impossible")