結果
問題 | No.9 モンスターのレベル上げ |
ユーザー |
|
提出日時 | 2018-09-30 18:05:44 |
言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 232 ms / 5,000 ms |
コード長 | 979 bytes |
コンパイル時間 | 1,019 ms |
コンパイル使用メモリ | 104,732 KB |
最終ジャッジ日時 | 2025-01-06 14:12:51 |
ジャッジサーバーID (参考情報) |
judge3 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 20 |
ソースコード
#include<iostream> #include<vector> #include<map> #include<algorithm> #include<cmath> int main(int, char**) { int n; std::cin >> n; std::vector<std::pair<int, int>> as(n); std::vector<int> bs(n); for(int i{}; i < n; ++i) { int a; std::cin >> a; as[i] = std::make_pair(a, 0); } for(int i{}; i < n; ++i) { std::cin >> bs[i]; } int min{10000000}; make_heap(begin(as), end(as), std::greater<std::pair<int, int>>()); for(int i{}; i < n; ++i) { std::vector<std::pair<int, int>> nas = as; for(int j{}; j < n; ++j) { int vsl = bs[(j + i) % n]; nas[0].first += vsl / 2; nas[0].second += 1; pop_heap(begin(nas), end(nas), std::greater<std::pair<int, int>>()); push_heap(begin(nas), end(nas), std::greater<std::pair<int, int>>()); } sort(begin(nas), end(nas), [](auto x, auto y){ return x.second > y.second; }); min = std::min(min, nas[0].second); } std::cout << min <<std::endl; return 0; }