結果
| 問題 |
No.9 モンスターのレベル上げ
|
| コンテスト | |
| ユーザー |
158b
|
| 提出日時 | 2015-05-14 19:38:23 |
| 言語 | C++11(廃止可能性あり) (gcc 13.3.0) |
| 結果 |
RE
|
| 実行時間 | - |
| コード長 | 1,459 bytes |
| コンパイル時間 | 567 ms |
| コンパイル使用メモリ | 63,448 KB |
| 実行使用メモリ | 5,376 KB |
| 最終ジャッジ日時 | 2024-07-06 03:43:07 |
| 合計ジャッジ時間 | 3,447 ms |
|
ジャッジサーバーID (参考情報) |
judge5 / judge1 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | WA * 1 RE * 19 |
ソースコード
#include <iostream>
#include <algorithm>
#include <functional>
#include <string>
#include <limits.h>
using namespace std;
const int Max_monster = 1500;
const int Max_lv = 100000;
const int Max_ans = 30;
long save[Max_monster]; //l
long my[Max_monster]; //l
long com[Max_monster];
//もっと単純に!
//save,my体裁 lv*10000+戦闘回数
int main(){
int n;
long in;
long ans = 999;
long ansmax;
int i,j;
long swap; //l
cin >> n;
for(int i=0; i<n; i++){
cin >> in;
save[i] = in * 10000;
}
for(int i=0; i<n; i++){
cin >> com[i];
}
//ソート関数にてソート
sort(save, save+n);
//計算部分
for(int starti=0; starti<n; starti++){
//cout << "-----" << starti << "-----" << endl;
//my表作成
for(int i=0; i<n; i++){
my[i] = save[i];
}
//戦闘
i=starti;
do{
//battle
my[0] += com[i] / 2 * 10000 + 1;
//my[0]だけ移動
swap = my[0];
j = 1;
while(swap > my[j] && j<Max_monster){
my[j-1] = my[j];
j ++;
}
my[j-1] = swap;
//cout << "戦闘" << ansnow << "→" << ansnow+1 << "\tLV" << lvnow << "→" << lvnow + com[i]/2 << endl;
//next
i ++;
if(i >= n){
i=0;
}
}while(i != starti);
//最高戦闘回数チェックとans更新
ansmax = -1;
for(int i=0; i<Max_monster; i++){
if(my[i] % 10000 > ansmax){
ansmax = my[i] % 10000;
}
}
if(ansmax < ans){
ans = ansmax;
}
}
cout << ans << endl;
return 0;
}
158b