結果

問題 No.9 モンスターのレベル上げ
ユーザー wightou
提出日時 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
権限があれば一括ダウンロードができます

ソースコード

diff #

#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;

}
0