結果

問題 No.3173 じゃんけんの勝ちの回数
ユーザー t98slider
提出日時 2025-05-31 08:00:10
言語 PyPy3
(7.3.15)
結果
RE  
実行時間 -
コード長 1,843 bytes
コンパイル時間 669 ms
コンパイル使用メモリ 82,592 KB
実行使用メモリ 67,960 KB
最終ジャッジ日時 2025-05-31 08:00:15
合計ジャッジ時間 4,729 ms
ジャッジサーバーID
(参考情報)
judge2 / judge3
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample RE * 1
other RE * 33
権限があれば一括ダウンロードができます

ソースコード

diff #

from sys import stdin

def solve():
    # 入力を受け取る
    N = int(stdin.readline())
    A = list(map(int, stdin.readline().split()))
    B = list(map(int, stdin.readline().split()))
    
    # 大小関係で分類
    SA, SB, SC = 0, 0, 0
    NA, NB, NC = 0, 0, 0
    for i in range(N):
        mn = min(A[i], B[i])
        if mn == 0: continue
        if A[i] < B[i]:
            SA += mn
            NA += 1
        elif B[i] < A[i]:
            SB += mn
            NB += 1
        else:
            SC += mn
            NC += 1

    # 3 (互角なし)
    if NC == 0: return SA >= SB

    # 4, 5
    if NA + NB == 0:
        if NC == 1:
            # 5
            return (SA + SB + SC) % 2 == 1
        else:
            # 4
            return (SA + SB + SC + NC) % 2 == 1

    # 1
    if SA >= SB and (SA + SB + SC) % 2 == 1: return True

    # 2
    if SA < SB and (SA + SB + SC) % 2 == 0: return False

    # 6
    if SA >= SB + SC - 1: return True

    # 7
    if SB >= SA + SC: return False

    # 8
    if SA >= SB:
        adv = NA + NC
        diff = SA - SB
        tmp = [A[i] for i in range(N) if A[i] != 0 and A[i] < B[i]]
        tmp.sort(reverse=True)
        for v in tmp:
            if SB <= v: break
            if adv == 3:
                SB -= v - 1
                diff -= 1
            else:
                SB -= v
                adv -= 1
        return adv >= 3 and diff > 0
    
    # 9
    adv = NB + NC
    diff = SB - SA
    tmp = [B[i] for i in range(N) if B[i] != 0 and B[i] < A[i]]
    tmp.sort()
    for v in tmp:
        if SA < v: break
        if adv == 3:
            SA -= v - 1
            diff -= 1
        else:
            SA -= v
            adv -= 1

    return not (adv >= 3 and diff > 0)


T = int(stdin.readline())
for _ in range(T):
    print('Takahashi' if solve() else 'Aoki')
0