結果
| 問題 |
No.9 モンスターのレベル上げ
|
| ユーザー |
horiesiniti
|
| 提出日時 | 2023-03-28 00:58:26 |
| 言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
| 結果 |
AC
|
| 実行時間 | 316 ms / 5,000 ms |
| コード長 | 851 bytes |
| コンパイル時間 | 602 ms |
| コンパイル使用メモリ | 74,672 KB |
| 実行使用メモリ | 6,944 KB |
| 最終ジャッジ日時 | 2024-09-19 18:36:00 |
| 合計ジャッジ時間 | 4,148 ms |
|
ジャッジサーバーID (参考情報) |
judge3 / judge5 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 20 |
ソースコード
#include <iostream>
#include <queue>
#include <vector>
using namespace std;
struct E{
long long int count;
long long int level;
bool operator<(const E& e)const{
if(level!=e.level)return level>e.level;
return count>e.count;
}
};
long long int xs[1501];
priority_queue<E> pq;
vector<E> vs;
int main() {
int n;
cin>>n;
for(int i=0;i<n;i++){
E e;
e.count=0;
cin>>e.level;
vs.push_back(e);
}
for(int i=0;i<n;i++){
cin>>xs[i];
}
int ans=n;
for(int s=0;s<n;s++){
int ans2=0;
for(int i=0;i<n;i++){
pq.push(vs[i]);
}
for(int i=0;i<n;i++){
E e=pq.top();
pq.pop();
e.count+=1;
e.level+=xs[(s+i)%n]/2;
pq.push(e);
if(ans2<e.count)ans2=e.count;
//cout<<e.count<<" "<<e.level<<endl;
}
//cout<<ans2<<endl;
if(ans>ans2)ans=ans2;
while(pq.size()>0){
pq.pop();
}
}
cout<<ans<<endl;
return 0;
}
horiesiniti