結果
問題 |
No.3266 岩井星人は見ずにはいられない
|
ユーザー |
👑 ![]() |
提出日時 | 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)