結果
問題 |
No.3173 じゃんけんの勝ちの回数
|
ユーザー |
|
提出日時 | 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 |
ソースコード
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')