結果
| 問題 |
No.9 モンスターのレベル上げ
|
| ユーザー |
A63635985
|
| 提出日時 | 2018-03-01 10:05:06 |
| 言語 | C++11(廃止可能性あり) (gcc 13.3.0) |
| 結果 |
AC
|
| 実行時間 | 175 ms / 5,000 ms |
| コード長 | 1,511 bytes |
| コンパイル時間 | 978 ms |
| コンパイル使用メモリ | 72,092 KB |
| 実行使用メモリ | 5,376 KB |
| 最終ジャッジ日時 | 2024-06-24 00:25:05 |
| 合計ジャッジ時間 | 3,377 ms |
|
ジャッジサーバーID (参考情報) |
judge1 / judge3 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 20 |
ソースコード
#include <iostream>
#include <vector>
#include <map>
#include <queue>
using namespace std;
struct Struct{
int count,level;
bool operator<(const Struct &other)const{
if(level==other.level)
return count>other.count;
else
return level>other.level;
}
};
int main(){
int N;
cin >>N;
vector <int>b;
vector <Struct> a;
priority_queue <Struct> aaa;
for(int i=0 ; i<N ; i++ ){
Struct x;cin >> x.level;
x.count=0;
a.push_back(x);
aaa.push(x);
}for(int i=0 ; i<N ; i++ ){
int x;cin >> x;
b.push_back(x/2);
}
int Max=2000000000;
for(int i=0 ; i<N ; i++ ){
priority_queue<Struct> now=aaa;
int counter=0,tmax=0;
while(counter!=N){
int l=(i+counter)%N;
Struct next;
next.level=now.top().level+b[l];
next.count=now.top().count+1;
now.pop();
now.push(next);
counter++;
if(tmax<next.count)tmax=next.count;
// if(Max<=tmax)break;
}
//:w cout << tmax << " "<<i << endl;
if(Max>tmax)Max=tmax;
}
cout <<Max<<endl;
return 0;
}
A63635985