結果
| 問題 | No.9 モンスターのレベル上げ |
| コンテスト | |
| ユーザー |
こる
|
| 提出日時 | 2017-01-07 14:28:07 |
| 言語 | Java (openjdk 23) |
| 結果 |
AC
|
| 実行時間 | 594 ms / 5,000 ms |
| コード長 | 1,601 bytes |
| コンパイル時間 | 3,799 ms |
| コンパイル使用メモリ | 78,560 KB |
| 実行使用メモリ | 57,392 KB |
| 最終ジャッジ日時 | 2024-06-23 23:48:22 |
| 合計ジャッジ時間 | 10,385 ms |
|
ジャッジサーバーID (参考情報) |
judge2 / judge4 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 20 |
ソースコード
import java.util.*;
import java.io.*;
public class No009 {
public static void main(String[] args) throws IOException {
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
int n=Integer.parseInt(br.readLine());
int[] a=new int[n];
int[] b=new int[n];
StringTokenizer st=new StringTokenizer(br.readLine());
for(int i=0;i<n;i++){ a[i]=Integer.parseInt(st.nextToken()); }
st=new StringTokenizer(br.readLine());
for(int i=0;i<n;i++){ b[i]=Integer.parseInt(st.nextToken())/2; }
int max=0;
int min=1000000000;
for(int i=0;i<n;i++){
Queue<zako> q=new PriorityQueue(new my());
for(int nn:a){ q.add(new zako(nn,0)); }
max=0;
for(int j=i;j<n+i;j++){
zako z=q.poll();
z.level+=b[j%n];
z.times++;
if(z.times>min) break;
if(z.times>max) max=z.times;
q.add(z);
}min=Math.min(min,max);
}System.out.println(min);
}
}
class my implements Comparator{
public int compare(Object obj1,Object obj2){
zako z1=(zako)obj1;
zako z2=(zako)obj2;
if(z1.times+z1.level*100000>z2.times+z2.level*100000){
return 1;
}else if(z1.times+z1.level*100000<z2.times+z2.level*100000){
return -1;
}else{
return 0;
}
}
}
class zako{
int level;
int times;
zako(int level,int times){
this.level=level;
this.times=times;
}
}
こる