結果
| 問題 |
No.1017 Reiwa Sequence
|
| ユーザー |
👑 SPD_9X2
|
| 提出日時 | 2025-07-16 01:02:23 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 1,763 bytes |
| コンパイル時間 | 325 ms |
| コンパイル使用メモリ | 82,332 KB |
| 実行使用メモリ | 125,912 KB |
| 最終ジャッジ日時 | 2025-07-16 01:02:54 |
| 合計ジャッジ時間 | 28,373 ms |
|
ジャッジサーバーID (参考情報) |
judge3 / judge5 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 4 |
| other | AC * 45 WA * 5 |
ソースコード
"""
https://yukicoder.me/problems/no/1017
300000ペア以上あれば、必ず衝突する
長さ600以下の場合、ちゃんと考えないとダメか?
dpして復元かなぁ...
しかし、A[i]が大きい場合に苦しい
3つ、4つと増やしていけばいいか
重複はない
"""
import sys
N = int(input())
A = list(map(int,input().split()))
adic = {}
for i in range(N):
if A[i] not in adic:
adic[A[i]] = []
adic[A[i]].append(i)
vk = [ (len(adic[i]),i) for i in adic ]
vk.sort()
vk.reverse()
if vk[0][0] >= 2:
k1 = vk[0][1]
ans = [0] * N
for i in adic[k1][:2]:
ans[i] = (-1)**i * A[i]
print ("Yes")
print (*ans)
sys.exit()
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) )
print ("No")
SPD_9X2