結果
| 問題 | 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')