結果
問題 |
No.1017 Reiwa Sequence
|
ユーザー |
|
提出日時 | 2024-10-08 23:51:34 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 1,159 ms / 2,000 ms |
コード長 | 668 bytes |
コンパイル時間 | 548 ms |
コンパイル使用メモリ | 82,168 KB |
実行使用メモリ | 234,624 KB |
最終ジャッジ日時 | 2024-10-08 23:52:33 |
合計ジャッジ時間 | 52,747 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 4 |
other | AC * 50 |
ソースコード
N = int(input()) A = list(map(int, input().split())) if N >= 22: for i in range(22, N): A[i] = 0 N = 22 num_masks = 1 << N vals = [0] * num_masks for mask in range(1, num_masks): for i in range(N): if mask >> i & 1: vals[mask] += A[i] memo = {} for m1, val in enumerate(vals[1:], start=1): if val in memo: m2 = memo[val] p = m1 & m2 m1 ^= p m2 ^= p for i in range(N): if m1 >> i & 1: A[i] *= -1 elif m2 >> i & 1 == 0: A[i] = 0 print('Yes') print(*A) quit() else: memo[val] = m1 print('No')