結果
| 問題 |
No.78 クジ付きアイスバー
|
| コンテスト | |
| ユーザー |
uafr_cs
|
| 提出日時 | 2015-06-17 01:19:17 |
| 言語 | Java (openjdk 23) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 1,131 bytes |
| コンパイル時間 | 2,246 ms |
| コンパイル使用メモリ | 77,588 KB |
| 実行使用メモリ | 54,344 KB |
| 最終ジャッジ日時 | 2024-10-06 17:06:29 |
| 合計ジャッジ時間 | 7,424 ms |
|
ジャッジサーバーID (参考情報) |
judge5 / judge4 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 WA * 1 |
| other | AC * 22 WA * 13 |
ソースコード
import java.math.BigDecimal;
import java.util.Arrays;
import java.util.Scanner;
public class Main {
public static long simulate(final int N, int[] S, long K, final long initial_bonus){
long bonus = initial_bonus;
long cost = 0;
for(long i = 0; i < K; i++){
final int index = (int)(i % N);
if(bonus > 0){
bonus--;
}else{
cost++;
}
bonus += S[index];
}
return cost;
}
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
final int N = sc.nextInt();
final long K = sc.nextLong();
char[] inputs = sc.next().toCharArray();
int[] S = new int[N];
for(int i = 0; i < N; i++){ S[i] = Character.getNumericValue(inputs[i]); }
int one_cycle_cost = 0, one_cycle_bonus = 0;
for(int i = 0; i < N; i++){
if(one_cycle_bonus > 0){
one_cycle_bonus--;
}else{
one_cycle_cost++;
}
one_cycle_bonus += S[i];
}
if(one_cycle_bonus > 0){
if(one_cycle_bonus >= one_cycle_cost){
System.out.println(one_cycle_cost);
}
}else{
System.out.println((K / N * one_cycle_cost) + simulate(N, S, K % N, 0));
}
}
}
uafr_cs