Submission #1133980

#TimeUsernameProblemLanguageResultExecution timeMemory
1133980NamkhingNile (IOI24_nile)C++20
67 / 100
2094 ms5640 KiB
#include "nile.h" #include <bits/stdc++.h> #define f first #define s second using namespace std; using ll = long long; using pipii = pair<int, pair<int, int>>; const ll inf = 1e18; const int N = 1e5 + 10; int n, q; pipii a[N]; ll dp[N]; vector<ll> calculate_costs(vector<int> W, vector<int> A, vector<int> B, vector<int> E) { n = W.size(), q = E.size(); for (int i = 1; i <= n; i++) a[i] = {W[i-1], {A[i-1], B[i-1]}}; sort(a + 1, a + n + 1); vector<ll> ans; for (int d : E) { for (int i = 1; i <= n; i++) { dp[i] = inf; if (i >= 3 && abs(a[i].f - a[i-2].f) <= d) dp[i] = min(dp[i], dp[i-3] + a[i].s.s + a[i-1].s.f + a[i-2].s.s); if (i >= 2 && abs(a[i].f - a[i-1].f) <= d) dp[i] = min(dp[i], dp[i-2] + a[i].s.s + a[i-1].s.s); dp[i] = min(dp[i], dp[i-1] + a[i].s.f); } ans.push_back(dp[n]); } return ans; }
#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...