結果
| 問題 |
No.3266 岩井星人は見ずにはいられない
|
| コンテスト | |
| ユーザー |
👑 SPD_9X2
|
| 提出日時 | 2025-09-13 02:14:24 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
AC
|
| 実行時間 | 63 ms / 2,000 ms |
| コード長 | 995 bytes |
| コンパイル時間 | 329 ms |
| コンパイル使用メモリ | 82,388 KB |
| 実行使用メモリ | 65,524 KB |
| 最終ジャッジ日時 | 2025-09-13 02:14:28 |
| 合計ジャッジ時間 | 4,079 ms |
|
ジャッジサーバーID (参考情報) |
judge1 / judge5 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 4 |
| other | AC * 31 |
ソースコード
"""
https://yukicoder.me/problems/no/3266
1周で1200に戻る場合 -> 1周目が永続
戻らない場合 -> 2周目が永続
"""
import sys
N,A = map(int,input().split())
S = input()
R = 1200
lp1 = 0
for i in range(N):
if S[i] == "0":
R -= 1
elif R < 1200:
R += 1
lp1 += 1
# 1周で戻る場合
if R == 1200:
ans = ( (A-1) // lp1) * N
now = ( (A-1) // lp1) * lp1
for i in range(N):
ans += 1
if S[i] == "0":
R -= 1
elif R < 1200:
R += 1
now += 1
if now == A:
break
print (ans)
sys.exit()
lp2 = 0
for i in range(N):
if S[i] == "0":
R -= 1
elif R < 1200:
R += 1
lp2 += 1
# print (lp1,lp2)
ans = N + ( (A-lp1-1)//lp2) * N
now = lp1 + ( (A-lp1-1)//lp2) *lp2
for i in range(N):
ans += 1
if S[i] == "0":
R -= 1
elif R < 1200:
R += 1
now += 1
if now == A:
break
print (ans)
SPD_9X2