結果
問題 | No.78 クジ付きアイスバー |
ユーザー |
![]() |
提出日時 | 2025-01-07 21:20:06 |
言語 | PyPy3 (7.3.15) |
結果 |
WA
|
実行時間 | - |
コード長 | 1,054 bytes |
コンパイル時間 | 687 ms |
コンパイル使用メモリ | 82,564 KB |
実行使用メモリ | 53,832 KB |
最終ジャッジ日時 | 2025-01-07 21:20:11 |
合計ジャッジ時間 | 3,234 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 4 |
other | AC * 23 WA * 12 |
ソースコード
N, K = map(int,input().split()) S = [int(s) for s in input()] pt = 0 mon = 0 cnt = 0 P = [] P2 = [] while cnt < N and pt < N: if pt == 0: mon += 1 pt += S[cnt % N] P.append(cnt) cnt += 1 if cnt >= K: print(len(P)) exit() while cnt < N and pt > 0 and pt < N: pt += S[cnt % N] - 1 cnt += 1 if cnt >= K: print(len(P)) exit() while cnt < N * 2: if pt == 0: mon += 1 pt += S[cnt % N] P2.append(cnt % N) cnt += 1 while cnt < 2 * N and pt > 0: pt += S[cnt % N] cnt += 1 pt -= 1 if len(P2) == 0: print(len(P)) exit() ''' 1巡目 len(P)払ってN+P2[0]個買う 2巡目以降 N個あたりlen(P2)払う ↓ ans += (K-N-P2[0]) * len(P2) // N 払う x = (K-N-P2[0]) * len(P2) %N 余る bisect(P2 % N) + 1払う ''' from bisect import bisect_left ans = len(P) K -= N + P2[0] t = K % len(P2) ans += K * len(P2) // N ans += bisect_left(P2,K * len(P2) % N) print(ans)