結果
問題 | No.9 モンスターのレベル上げ |
ユーザー |
![]() |
提出日時 | 2018-03-01 02:28:04 |
言語 | C++11 (gcc 13.3.0) |
結果 |
WA
|
実行時間 | - |
コード長 | 1,474 bytes |
コンパイル時間 | 626 ms |
コンパイル使用メモリ | 72,636 KB |
実行使用メモリ | 6,824 KB |
最終ジャッジ日時 | 2024-12-23 07:05:21 |
合計ジャッジ時間 | 2,202 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 14 WA * 6 |
ソースコード
#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(int((x/2)-0.4)); } 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; } if(Max>tmax)Max=tmax; } cout <<Max<<endl; return 0; }