結果
問題 | No.9 モンスターのレベル上げ |
ユーザー |
![]() |
提出日時 | 2018-03-24 23:03:29 |
言語 | C++14 (gcc 11.2.0 + boost 1.78.0) |
結果 |
AC
|
実行時間 | 359 ms / 5,000 ms |
コード長 | 1,915 bytes |
コンパイル時間 | 1,029 ms |
使用メモリ | 6,028 KB |
最終ジャッジ日時 | 2023-01-23 02:53:02 |
合計ジャッジ時間 | 5,322 ms |
ジャッジサーバーID (参考情報) |
judge13 / judge15 |
テストケース
テストケース表示入力 | 結果 | 実行時間 使用メモリ |
---|---|---|
testcase_00 | AC | 3 ms
5,808 KB |
testcase_01 | AC | 3 ms
5,808 KB |
testcase_02 | AC | 359 ms
6,016 KB |
testcase_03 | AC | 286 ms
5,900 KB |
testcase_04 | AC | 150 ms
5,800 KB |
testcase_05 | AC | 99 ms
5,832 KB |
testcase_06 | AC | 36 ms
5,868 KB |
testcase_07 | AC | 4 ms
5,808 KB |
testcase_08 | AC | 47 ms
5,928 KB |
testcase_09 | AC | 348 ms
5,836 KB |
testcase_10 | AC | 3 ms
5,800 KB |
testcase_11 | AC | 301 ms
5,960 KB |
testcase_12 | AC | 235 ms
6,028 KB |
testcase_13 | AC | 225 ms
5,900 KB |
testcase_14 | AC | 350 ms
5,996 KB |
testcase_15 | AC | 316 ms
5,840 KB |
testcase_16 | AC | 8 ms
5,872 KB |
testcase_17 | AC | 206 ms
6,012 KB |
testcase_18 | AC | 171 ms
5,880 KB |
testcase_19 | AC | 6 ms
5,796 KB |
ソースコード
# include <iostream> # include <algorithm> #include <array> # include <cassert> #include <cctype> #include <climits> #include <numeric> # include <vector> # include <string> # include <set> # include <map> # include <cmath> # include <iomanip> # include <functional> # include <tuple> # include <utility> # include <stack> # include <queue> # include <list> # include <bitset> # include <complex> # include <chrono> # include <random> # include <limits.h> # include <unordered_map> # include <unordered_set> # include <deque> # include <cstdio> # include <cstring> using namespace std; using LL = long long; using ULL = unsigned long long; constexpr long long MOD = 1000000000 + 7; constexpr long long INF = std::numeric_limits<long long>::max(); const double PI = acos(-1); #define fir first #define sec second typedef pair<LL, LL> Pll; typedef pair<LL, pair<LL, LL>> Ppll; typedef pair<LL, pair<LL, bitset<100001>>> Pbll; typedef pair<LL, pair<LL, vector<LL>>> Pvll; typedef pair<LL, LL> Vec2; struct Tll { LL first, second, third; }; typedef pair<LL, Tll> Ptll; #define rep(i,rept) for(LL i=0;i<rept;i++) #define Mfor(i,mf) for(LL i=mf-1;i>=0;i--) LL h, w, n, m, k, s, t, q, sum, last, ans = INF, a[1600], b[1600]; struct Edge { LL to, cost; }; string str; bool f[1600]; void YN(bool f) { if (f) cout << "YES" << endl; else cout << "NO" << endl; } void yn(bool f) { if (f) cout << "Yes" << endl; else cout << "No" << endl; } vector<Edge>vec[100000]; int main() { cin >> n; rep(i, n)cin >> a[i]; rep(i, n)cin >> b[i]; rep(i, n) { LL cnt[1600] = {}, mx = 0; priority_queue <Ppll, vector<Ppll>, greater<Ppll>>q; rep(j, n)q.push(Ppll(a[j], Pll(0, j))); rep(j, n) { Ppll p = q.top(); q.pop(); cnt[p.sec.sec]++; mx = max(mx, cnt[p.sec.sec]); q.push(Ppll(p.fir + b[(j + i) % n] / 2, Pll(cnt[p.sec.sec], p.sec.sec))); } ans = min(ans, mx); } cout << ans << endl; return 0; }