結果
問題 |
No.1444 !Andd
|
ユーザー |
|
提出日時 | 2021-01-21 17:40:22 |
言語 | PyPy3 (7.3.15) |
結果 |
WA
|
実行時間 | - |
コード長 | 883 bytes |
コンパイル時間 | 387 ms |
コンパイル使用メモリ | 82,432 KB |
実行使用メモリ | 768,224 KB |
最終ジャッジ日時 | 2024-12-31 00:35:25 |
合計ジャッジ時間 | 62,494 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | WA * 2 MLE * 1 |
other | TLE * 1 MLE * 19 |
ソースコード
def main(): import sys input=sys.stdin.readline n=int(input()) a=list(map(int,input().split())) add_dp=[[False]*256 for _ in range(1<<n)] and_dp=[[False]*256 for _ in range(1<<n)] and_dp[0][0]=True r256=range(256) rn=range(n) for bit in range(1<<n): for k in r256: if not add_dp[bit][k] and not and_dp[bit][k]: continue for i in rn: if bit&(1<<i): continue add_dp[bit|(1<<i)][(k+a[i])&255]=True and_dp[bit|(1<<i)][k&a[i]]=True ans=[False]*(n*255) s=[0]*(1<<n) for bit in range(1<<n): for i in rn: if bit&(1<<i): s[bit]+=a[i] for bit in range(1<<n): for k in r256: if and_dp[bit][k]: ans[k+s[((1<<n)-1)^bit]]=True print(sum(ans)) main()