結果
| 問題 |
No.1017 Reiwa Sequence
|
| ユーザー |
👑 SPD_9X2
|
| 提出日時 | 2025-07-16 01:15:53 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
AC
|
| 実行時間 | 936 ms / 2,000 ms |
| コード長 | 2,186 bytes |
| コンパイル時間 | 329 ms |
| コンパイル使用メモリ | 82,100 KB |
| 実行使用メモリ | 282,588 KB |
| 最終ジャッジ日時 | 2025-07-16 01:16:32 |
| 合計ジャッジ時間 | 34,685 ms |
|
ジャッジサーバーID (参考情報) |
judge5 / judge2 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 4 |
| other | AC * 50 |
ソースコード
"""
https://yukicoder.me/problems/no/1017
300000ペア以上あれば、必ず衝突する
長さ600以下の場合、ちゃんと考えないとダメか?
dpして復元かなぁ...
しかし、A[i]が大きい場合に苦しい
3つ、4つと増やしていけばいいか
重複はない
"""
import sys
N = int(input())
A = list(map(int,input().split()))
dic = {}
def check( pos ):
s = 0
for p in pos:
s += A[p]
if s in dic:
ans = [0] * N
for p in dic[s]:
ans[p] = -1 * A[p]
for p in pos:
ans[p] = 1 * A[p]
print ("Yes")
print (*ans)
sys.exit()
dic[s] = pos
for i in range(N):
check( (i,) )
for i in range(N):
for j in range(i):
check( (i,j) )
for i in range(N):
for j in range(i):
for k in range(j):
check( (i,j,k) )
for i in range(N):
for j in range(i):
for k in range(j):
for l in range(k):
check( (i,j,k,l) )
for i in range(N):
for j in range(i):
for k in range(j):
for l in range(k):
for m in range(l):
check( (i,j,k,l,m) )
for i in range(N):
for j in range(i):
for k in range(j):
for l in range(k):
for m in range(l):
for x in range(m):
check( (i,j,k,l,m,x) )
for i in range(N):
for j in range(i):
for k in range(j):
for l in range(k):
for m in range(l):
for x in range(m):
for y in range(x):
check( (i,j,k,l,m,x,y) )
for i in range(N):
for j in range(i):
for k in range(j):
for l in range(k):
for m in range(l):
for x in range(m):
for y in range(x):
for z in range(y):
check( (i,j,k,l,m,x,y,z) )
for bit in range(2**N):
pos = []
for i in range(N):
if (2**i) & bit:
pos.append(i)
if len(pos) > 8:
check( tuple(pos) )
print ("No")
SPD_9X2