結果
| 問題 | No.9 モンスターのレベル上げ |
| コンテスト | |
| ユーザー |
spacia
|
| 提出日時 | 2016-01-20 20:17:25 |
| 言語 | Java (openjdk 23) |
| 結果 |
AC
|
| 実行時間 | 541 ms / 5,000 ms |
| コード長 | 1,298 bytes |
| コンパイル時間 | 2,146 ms |
| コンパイル使用メモリ | 79,676 KB |
| 実行使用メモリ | 46,456 KB |
| 最終ジャッジ日時 | 2024-06-23 23:17:23 |
| 合計ジャッジ時間 | 7,794 ms |
|
ジャッジサーバーID (参考情報) |
judge4 / judge1 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 20 |
ソースコード
import java.io.*;
import java.util.*;
import java.math.*;
class Main {
static int len;
public static void out (Object o) {
System.out.println(o);
}
public static int solve (int[] levelM , int[] levelE) {
int ret = Integer.MAX_VALUE , maxI = -1;
int[] bk = Arrays.copyOf(levelM , len);
main:for (int i = 0; i < len; i++) {
int win = 0;
PriorityQueue<Integer> pq = new PriorityQueue<Integer>();
for (int j = 0; j < len; j++) pq.add(bk[j]);
for (int j = i; win++ < len; j++) {
j %= len;
int p = pq.poll();
p += levelE[j] + 1;
if ((p & 0xfff) >= ret) continue main;
pq.add(p);
}
int max = 0;
for (int j = 0; j < len; j++)
max = Math.max(max , pq.poll() & 0xfff);
ret = Math.min(ret , max);
}
return ret;
}
public static void main (String[] args) throws IOException {
BufferedReader br =
new BufferedReader(new InputStreamReader(System.in));
len = Integer.parseInt(br.readLine());
String[] line1 = br.readLine().split(" ");
int[] levelM = new int[len];
String[] line2 = br.readLine().split(" ");
int[] levelE = new int[len];
for (int i = 0; i < len; i++) {
levelM[i] = Integer.parseInt(line1[i]) << 12;
levelE[i] = (Integer.parseInt(line2[i]) >> 1) << 12;
}
out(solve(levelM , levelE));
}
}
spacia