結果
問題 | No.1538 引きこもりさんは引き算が得意。 |
ユーザー |
![]() |
提出日時 | 2021-05-20 17:51:37 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 780 ms / 2,000 ms |
コード長 | 493 bytes |
コンパイル時間 | 456 ms |
コンパイル使用メモリ | 82,284 KB |
実行使用メモリ | 176,156 KB |
最終ジャッジ日時 | 2024-12-14 05:19:06 |
合計ジャッジ時間 | 14,075 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 54 |
ソースコード
#おそらく正しい解法 n,k=map(int,input().split()) a=list(map(int,input().split())) if k in a: print('Yes') exit() d={} cnt=0 if k==0: cnt+=2**n for i in range(2**n): tmp=0 for j in range(n): if (i>>j)&1: tmp+=a[j] if tmp==k: cnt-=2**(n-bin(i).count('1')) if tmp==-k: cnt-=2**(n-bin(i).count('1')) if tmp in d: d[tmp]+=1 else: d[tmp]=1 for i in d.keys(): if i+k in d.keys(): cnt+=d[i]*d[i+k] if cnt>0: print('Yes') else: print('No')