結果

問題 No.3531 Erase Pair
コンテスト
ユーザー K2
提出日時 2026-05-04 22:23:03
言語 PyPy3
(7.3.17)
コンパイル:
pypy3 -mpy_compile _filename_
実行:
pypy3 _filename_
結果
WA  
実行時間 -
コード長 1,309 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
コンパイル時間 172 ms
コンパイル使用メモリ 84,996 KB
実行使用メモリ 82,544 KB
最終ジャッジ日時 2026-05-04 22:23:18
合計ジャッジ時間 9,247 ms
ジャッジサーバーID
(参考情報)
judge1_1 / judge2_1
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 1
other WA * 50
権限があれば一括ダウンロードができます

ソースコード

diff #
raw source code

# 0は操作で消すことができない
# もし0が2つ以上あるなら明らかにだめ

# 正の数だけなら、大きいほうから消すことで長さfloor(N/2)を達成可能
# 負の数でも同様
# よって、0が1つもないなら明らかにOK(最後に正の数と負の数が高々1つ残って、どっちもあるならそれらは消せる)

# 0が1つだけなとき
# 正数/負数の個数をそれぞれn, mとしよう
# n % 2 == m % 2 == 0 のとき: どっちも消えるのでOK
# n % 2 + m % 2 == 1 のとき: 0となにか1つが残っちゃうのでだめ
# 残るは n % 2 == m % 2 == 1
# 最後に足して0になるペアが残らなければいい
# いったんここを適当に書いてみる、ペナないし(なんかごめんなさい...)

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

    M = [a for a in A if a < 0]
    P = [a for a in A if a > 0]
    n = len(M)
    m = len(P)
    if N - n - m >= 2:
        print("No")
    elif N - n - m == 0:
        print("Yes")
    elif n % 2 == m % 2 == 0:
        print("Yes")
    elif n % 2 + m % 2 == 1:
        print("No")
    else:
        M.sort()
        P.sort()
        print("No" if -M[0] == -M[-1] == P[0] == P[-1] else "Yes")


T = int(input())
for _ in range(T):
    solve()
0