Submission #1230915

#TimeUsernameProblemLanguageResultExecution timeMemory
1230915sahasradNile (IOI24_nile)C++20
23 / 100
2093 ms14388 KiB
#include <bits/stdc++.h> #define pii pair<int, int> typedef long long ll; using namespace std; vector<ll> calculate_costs(vector<int> W, vector<int> A, vector<int> B, vector<int> E) { int n = W.size(); int q = E.size(); vector<vector<int>> arr(n, vector<int>(3)); for (int i = 0; i < n; i++) { arr[i][0] = W[i]; arr[i][1] = A[i]; arr[i][2] = B[i]; } sort(arr.begin(), arr.end(), [](const vector<int>& a, const vector<int>& b) { return a[0] < b[0]; }); vector<ll> ans(q); for (int qi = 0; qi < q; qi++) { int d = E[qi]; ll sum = 0; vector<ll> dp(n); queue<pii> q; multiset<ll> qVal; for (int i = 0; i < n; i++) { int w = arr[i][0], a = arr[i][1], b = arr[i][2]; while (!q.empty() && q.front().first < w - d) { auto [w2, val] = q.front(); q.pop(); qVal.erase(qVal.find(val)); } ll last = i == 0 ? 0 : dp[i - 1]; dp[i] = last + a; if (!q.empty()) { dp[i] = min(dp[i], *qVal.begin() + sum + b); } sum += a; ll val = last + b - sum; q.push({w, val}); qVal.insert(val); } ans[qi] = dp[n - 1]; } return ans; } // int main() { // ios::sync_with_stdio(false); // cin.tie(nullptr); // int n, q; // cin >> n >> q; // vector<int> W(n), A(n), B(n), E(q); // for (int i = 0; i < n; i++) { // cin >> W[i]; // } // for (int i = 0; i < n; i++) { // cin >> A[i]; // } // for (int i = 0; i < n; i++) { // cin >> B[i]; // } // for (int i = 0; i < q; i++) { // cin >> E[i]; // } // vector<ll> result = calculate_costs(W, A, B, E); // for (ll cost : result) { // cout << cost << "\n"; // } // return 0; // }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...