結果
| 問題 |
No.78 クジ付きアイスバー
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2015-07-20 22:34:23 |
| 言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) |
| 結果 |
AC
|
| 実行時間 | 32 ms / 5,000 ms |
| コード長 | 720 bytes |
| コンパイル時間 | 97 ms |
| コンパイル使用メモリ | 12,544 KB |
| 実行使用メモリ | 10,752 KB |
| 最終ジャッジ日時 | 2024-11-08 00:47:06 |
| 合計ジャッジ時間 | 2,429 ms |
|
ジャッジサーバーID (参考情報) |
judge5 / judge1 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 4 |
| other | AC * 35 |
ソースコード
N, K = map(int, input().split())
S = input()
def solve(N, K, S):
if K <= N:
return count_payment(N, K, S)[0]
cost, atari = count_payment(N, N, S)
m, r = divmod(K, N)
cost2, atari2 = count_payment(N, r, S)
return cost + max(cost - atari, 0) * (m-1) + max(cost2 - atari, 0)
def count_payment(N, K, S):
'''K個のアイスを食べるために、購入するアイスの本数と、残りあたり本数をこたえる。
'''
cost = 0
atari = 0
for s in S[:K]:
if atari:
atari -= 1
else:
cost += 1
if s == '1':
atari += 1
elif s == '2':
atari += 2
return cost, atari
print(solve(N, K, S))