結果
問題 |
No.9 モンスターのレベル上げ
|
ユーザー |
|
提出日時 | 2025-06-27 09:54:49 |
言語 | C++23 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 468 ms / 5,000 ms |
コード長 | 1,130 bytes |
コンパイル時間 | 3,521 ms |
コンパイル使用メモリ | 283,668 KB |
実行使用メモリ | 7,844 KB |
最終ジャッジ日時 | 2025-06-27 09:54:58 |
合計ジャッジ時間 | 9,070 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 20 |
ソースコード
#include <bits/stdc++.h> using namespace std; /////////////////// メイン /////////////////// int main () { //////////////////// 入力 //////////////////// int n; cin >> n; vector<int> a(n); for (int i=0; i<n; i++) { cin >> a.at(i); } vector<int> b(n); for (int i=0; i<n; i++) { cin >> b.at(i); } //////////////// 出力変数定義 //////////////// int result = n+1; //////////////////// 処理 //////////////////// for (int start=0; start<n; start++) { priority_queue<pair<int,int>,vector<pair<int,int>>,greater<pair<int,int>>> que; for (int i : a) { que.emplace(i,0); } for (int i=0; i<n; i++) { int enemy = (start+i)%n; auto [level,battle] = que.top(); que.pop(); que.emplace(level+b.at(enemy)/2,battle+1); } int max_battle = 0; while (!que.empty()) { max_battle = max(max_battle,que.top().second); que.pop(); } result = min(result,max_battle); } //////////////////// 出力 //////////////////// cout << result << endl; //////////////////// 終了 //////////////////// return 0; }