結果
問題 | No.4 おもりと天秤 |
ユーザー |
![]() |
提出日時 | 2023-12-31 03:52:41 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 65 ms / 5,000 ms |
コード長 | 411 bytes |
コンパイル時間 | 308 ms |
コンパイル使用メモリ | 82,428 KB |
実行使用メモリ | 70,704 KB |
最終ジャッジ日時 | 2024-09-27 17:00:54 |
合計ジャッジ時間 | 2,344 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 23 |
ソースコード
import sys sys.setrecursionlimit(10**6) n=int(input()) w=list(map(int,input().split())) mid=-(-sum(w)//2) dp=[[0]*2*(mid+1) for i in range(n+1)] dp[-1][0]=1 for i in range(n): for ind in range(-mid,mid+1): if not dp[i-1][ind]:continue if ind+w[i]<=mid: dp[i][ind+w[i]]=1 if -mid<=ind-w[i]: dp[i][ind-w[i]]=1 print("possible" if dp[n-1][0] else 'impossible')