Submission #491507

# Submission time Handle Problem Language Result Execution time Memory
491507 2021-12-02T18:23:54 Z zxcvbnm City (BOI06_city) C++14
90 / 100
1000 ms 25012 KB
#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 time Memory Grader output
1 Correct 26 ms 24604 KB Output is correct
2 Correct 71 ms 24648 KB Output is correct
3 Correct 31 ms 24676 KB Output is correct
4 Correct 217 ms 24760 KB Output is correct
5 Correct 44 ms 24628 KB Output is correct
6 Correct 29 ms 24692 KB Output is correct
7 Execution timed out 1087 ms 25012 KB Time limit exceeded
8 Correct 490 ms 24684 KB Output is correct
9 Correct 280 ms 24720 KB Output is correct
10 Correct 26 ms 24628 KB Output is correct