結果
| 問題 |
No.1150 シュークリームゲーム(Easy)
|
| コンテスト | |
| ユーザー |
qwewe
|
| 提出日時 | 2025-04-24 12:22:53 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 2,336 bytes |
| コンパイル時間 | 309 ms |
| コンパイル使用メモリ | 82,592 KB |
| 実行使用メモリ | 97,156 KB |
| 最終ジャッジ日時 | 2025-04-24 12:24:54 |
| 合計ジャッジ時間 | 5,308 ms |
|
ジャッジサーバーID (参考情報) |
judge2 / judge1 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 2 |
| other | AC * 16 WA * 27 |
ソースコード
N = int(input())
s, t = map(int, input().split())
A = list(map(int, input().split()))
used = [False] * (N + 1) # Using 1-based indexing
used[s] = True
used[t] = True
x = A[s-1]
y = A[t-1]
def get_prev(pos):
return (pos - 2) % N + 1
def get_next(pos):
return pos % N + 1
# Initialize players' positions and candidates
# Player 315: starts at s
p315_L = p315_R = s
p315_lc = get_prev(p315_L)
p315_rc = get_next(p315_R)
# Player 8128: starts at t
p8128_L = p8128_R = t
p8128_lc = get_prev(p8128_L)
p8128_rc = get_next(p8128_R)
turn = 0 # 0 for 315's turn, 1 for 8128's
while True:
current_player = turn % 2
moved = False
if current_player == 0:
# 315's turn
candidates = []
if not used[p315_lc]:
candidates.append((-A[p315_lc - 1], p315_lc, 'left')) # Negative for descending sort
if not used[p315_rc]:
candidates.append((-A[p315_rc - 1], p315_rc, 'right'))
if candidates:
candidates.sort()
val_neg, pos, direction = candidates[0]
val = -val_neg
x += val
used[pos] = True
moved = True
if direction == 'left':
p315_L = pos
p315_lc = get_prev(pos)
else:
p315_R = pos
p315_rc = get_next(pos)
else:
# 8128's turn
candidates = []
if not used[p8128_lc]:
candidates.append((-A[p8128_lc - 1], p8128_lc, 'left'))
if not used[p8128_rc]:
candidates.append((-A[p8128_rc - 1], p8128_rc, 'right'))
if candidates:
candidates.sort()
val_neg, pos, direction = candidates[0]
val = -val_neg
y += val
used[pos] = True
moved = True
if direction == 'left':
p8128_L = pos
p8128_lc = get_prev(pos)
else:
p8128_R = pos
p8128_rc = get_next(pos)
# Check if any player can move next turn
has_move = False
# Check for 315
if (not used[p315_lc]) or (not used[p315_rc]):
has_move = True
# Check for 8128
if (not used[p8128_lc]) or (not used[p8128_rc]):
has_move = True
if not has_move:
break
turn += 1
print(x - y)
qwewe