Submission #491507

#TimeUsernameProblemLanguageResultExecution timeMemory
491507zxcvbnmCity (BOI06_city)C++14
90 / 100
1087 ms25012 KiB
#include <bits/stdc++.h> using namespace std; using ll = long long; #define int ll using pii = pair<int, int>; constexpr int nax = 1e6 + 5; signed main() { ios_base::sync_with_stdio(false); cin.tie(nullptr); int n, t, k; cin >> n >> t >> k; vector<int> cost(k); for(int& i : cost) { cin >> i; } vector<int> idx(nax, 0); priority_queue<pii, vector<pii>, greater<pii>> q; for(int i = 0; i < nax; i++) { q.push({cost[0]+t*i, i}); } ll ans = 0; int p = 0; while(p < n) { assert(!q.empty()); auto v = q.top(); q.pop(); int take = min(n-p, (v.second + 1) * 4LL); ans += v.first * take; p += take; idx[v.second]++; if (idx[v.second] < k) { q.push({cost[idx[v.second]] + v.second * t, v.second}); } // cout << p << } cout << ans << "\n"; // cout << p << " " << ans << "\n"; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...