結果
問題 |
No.1083 余りの余り
|
ユーザー |
|
提出日時 | 2020-06-20 00:10:00 |
言語 | PyPy3 (7.3.15) |
結果 |
WA
|
実行時間 | - |
コード長 | 622 bytes |
コンパイル時間 | 202 ms |
コンパイル使用メモリ | 82,432 KB |
実行使用メモリ | 216,984 KB |
最終ジャッジ日時 | 2024-07-03 16:16:35 |
合計ジャッジ時間 | 12,199 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 27 WA * 4 |
ソースコード
n,k=map(int,input().split()) arr=list(map(int,input().split())) vals=[[0]] s=set() s.add(0) for i in range(1,n): tmp=[] for val in vals[-1]: for j in range(n): if val&(1<<j): continue if val+(1<<j) in s: continue tmp.append(val+(1<<j)) s.add(val+(1<<j)) vals.append(tmp) v=[] for i in range(n): for val in vals[i]: v.append(val) v.append(2**n-1) dp=[0]*(2**n) dp[0]=k for i in v: for j in range(n): if i&(1<<j): continue dp[i+(1<<j)]=max(dp[i+(1<<j)],dp[i]%arr[j]) print(dp[-1])