結果

問題 No.1017 Reiwa Sequence
ユーザー Shinya FujitaShinya Fujita
提出日時 2024-10-08 23:04:12
言語 PyPy3
(7.3.15)
結果
WA  
実行時間 -
コード長 1,161 bytes
コンパイル時間 333 ms
コンパイル使用メモリ 82,308 KB
実行使用メモリ 114,684 KB
最終ジャッジ日時 2024-10-08 23:04:55
合計ジャッジ時間 38,956 ms
ジャッジサーバーID
(参考情報)
judge5 / judge2
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 56 ms
69,120 KB
testcase_01 AC 62 ms
71,424 KB
testcase_02 AC 37 ms
52,992 KB
testcase_03 AC 86 ms
83,072 KB
testcase_04 AC 37 ms
52,992 KB
testcase_05 AC 63 ms
71,040 KB
testcase_06 AC 57 ms
68,608 KB
testcase_07 AC 36 ms
52,992 KB
testcase_08 AC 40 ms
53,376 KB
testcase_09 AC 134 ms
93,312 KB
testcase_10 AC 107 ms
93,696 KB
testcase_11 WA -
testcase_12 AC 138 ms
99,200 KB
testcase_13 AC 116 ms
96,128 KB
testcase_14 AC 109 ms
94,080 KB
testcase_15 AC 116 ms
96,256 KB
testcase_16 AC 109 ms
93,824 KB
testcase_17 AC 133 ms
100,608 KB
testcase_18 AC 107 ms
93,184 KB
testcase_19 AC 169 ms
113,152 KB
testcase_20 AC 177 ms
112,512 KB
testcase_21 AC 164 ms
113,152 KB
testcase_22 AC 191 ms
113,024 KB
testcase_23 AC 165 ms
112,992 KB
testcase_24 AC 162 ms
112,640 KB
testcase_25 AC 159 ms
113,128 KB
testcase_26 AC 155 ms
112,384 KB
testcase_27 AC 166 ms
110,336 KB
testcase_28 WA -
testcase_29 WA -
testcase_30 AC 159 ms
110,848 KB
testcase_31 AC 143 ms
104,832 KB
testcase_32 AC 155 ms
110,848 KB
testcase_33 AC 155 ms
110,592 KB
testcase_34 AC 37 ms
52,992 KB
testcase_35 AC 39 ms
53,376 KB
testcase_36 AC 37 ms
53,120 KB
testcase_37 AC 152 ms
109,824 KB
testcase_38 AC 151 ms
109,952 KB
testcase_39 AC 153 ms
109,824 KB
testcase_40 AC 114 ms
99,712 KB
testcase_41 AC 112 ms
99,968 KB
testcase_42 AC 109 ms
98,048 KB
testcase_43 AC 108 ms
97,920 KB
testcase_44 AC 134 ms
99,328 KB
testcase_45 AC 118 ms
99,712 KB
testcase_46 AC 106 ms
98,048 KB
testcase_47 AC 105 ms
97,792 KB
testcase_48 AC 97 ms
104,832 KB
testcase_49 AC 137 ms
107,008 KB
testcase_50 AC 96 ms
105,472 KB
testcase_51 AC 49 ms
65,024 KB
testcase_52 WA -
testcase_53 WA -
権限があれば一括ダウンロードができます

ソースコード

diff #

N = int(input())
A = list(map(int, input().split()))

M = 150001
exist = [-1] * M
for i, ai in enumerate(A):
    if exist[ai] != -1:
        ans = [0] * N
        ans[i] = -ai
        ans[exist[ai]] = ai
        print('Yes')
        print(*ans)
        quit()
    
    exist[ai] = i


order = sorted(range(N), key=lambda i:A[i])
dp = [[0]*2*M]
dp[0][0] = 1
for pos, i in enumerate(order):
    ai = A[i]
    if dp[-1][ai]:
        print('Yes')
        ans = [0] * N
        ans[i] = -ai
        now = ai
        for ii in order[:pos][::-1]:
            dp.pop()
            aii = A[ii]
            if dp[-1][now]:
                continue
            if -M+1 <= now - aii and dp[-1][now-aii]:
                now -= aii
                ans[ii] = aii
                continue
            if now + aii < M and dp[-1][now+aii]:
                now += aii
                ans[ii] = -aii
        print(*ans)
        quit()
    nex = [0] * 2*M
    for j in range(-M+1, M):
        nex[j] |= dp[-1][j]
        if dp[-1][j]:
            if -M+1 <= j-ai:
                nex[j-ai] = 1
            if j+ai < M:
                nex[j+ai] = 1
    dp.append(nex)

print('No')
0