結果

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

ソースコード

diff #
raw source code

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

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

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


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 == 0:
        print("No")
    elif n % 2 == m % 2 == 0:
        print("Yes")
    else:
        assert False
        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