結果
| 問題 |
No.2278 Time Bomb Game 2
|
| コンテスト | |
| ユーザー |
Kude
|
| 提出日時 | 2023-04-21 22:01:08 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
AC
|
| 実行時間 | 53 ms / 2,000 ms |
| コード長 | 1,128 bytes |
| コンパイル時間 | 319 ms |
| コンパイル使用メモリ | 82,036 KB |
| 実行使用メモリ | 72,064 KB |
| 最終ジャッジ日時 | 2024-11-06 17:03:42 |
| 合計ジャッジ時間 | 5,319 ms |
|
ジャッジサーバーID (参考情報) |
judge5 / judge3 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 2 |
| other | AC * 70 |
ソースコード
n, k, t = map(int, input().split())
s = input()
k -= 1
def first_win(s, k, t):
l = r = k
while l > 0 and s[l - 1] == s[k]:
l -= 1
while r + 1 < n and s[r + 1] == s[k]:
r += 1
if r - l + 1 > 1:
if l > 0:
d = k - (l - 1)
if d <= t and (t - d) % 2 == 0:
return True
if r + 1 < n:
d = r + 1 - k
if d <= t and (t - d) % 2 == 0:
return True
return False
else:
ok = False
side_min = n + 10
if k > 0:
l = k - 1
while l > 0 and s[l - 1] != s[k]:
l -= 1
side_min = min(side_min, k - l)
if k + 1 < n:
r = k + 1
while r + 1 < n and s[r + 1] != s[k]:
r += 1
side_min = min(side_min, r - k)
if side_min == 1:
return t % 2 == 1
else:
return (k > 0 and not first_win(s, k - 1, t - 1)) or (k + 1 < n and not first_win(s, k + 1, t - 1))
ans = first_win(s, k, t)
if s[k] == 'B':
ans = not ans
print('Alice' if ans else 'Bob')
Kude