結果
問題 | No.1017 Reiwa Sequence |
ユーザー |
|
提出日時 | 2024-03-12 12:18:32 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 298 ms / 2,000 ms |
コード長 | 1,864 bytes |
コンパイル時間 | 181 ms |
コンパイル使用メモリ | 82,472 KB |
実行使用メモリ | 169,568 KB |
最終ジャッジ日時 | 2024-09-29 22:16:08 |
合計ジャッジ時間 | 35,993 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 4 |
other | AC * 50 |
ソースコード
import sysimport mathimport bisectfrom heapq import heapify, heappop, heappushfrom collections import deque, defaultdict, Counterfrom functools import lru_cachefrom itertools import accumulate, combinations, permutations, productsys.setrecursionlimit(1000000)MOD = 10 ** 9 + 7MOD99 = 998244353input = lambda: sys.stdin.readline().strip()NI = lambda: int(input())NMI = lambda: map(int, input().split())NLI = lambda: list(NMI())SI = lambda: input()SMI = lambda: input().split()SLI = lambda: list(SMI())EI = lambda m: [NLI() for _ in range(m)]def main():N = NI()A = NLI()C = Counter(A)MC = C.most_common()if MC[0][1] >= 2:x = MC[0][0]ans = []cnt = 0for a in A:if a == x:if cnt == 0:ans.append(a)elif cnt == 1:ans.append(-a)else:ans.append(0)cnt += 1else:ans.append(0)print("Yes")print(*ans)else:B = min(N, 22)S = set()T = [0] * (1<<B)c = -1d = 0for case in range(1<<B):tmp = 0for i in range(B):if (case >> i) & 1:tmp += A[i]if tmp in S:c = T.index(tmp)d = casebreakelse:S.add(tmp)T[case] = tmpif c == -1:print("No")returnans = []for i, a in enumerate(A):if (c>>i) & 1:ans.append(a)elif (d>>i) & 1:ans.append(-a)else:ans.append(0)print("Yes")print(*ans)if __name__ == "__main__":main()