Submission #1221845

#TimeUsernameProblemLanguageResultExecution timeMemory
1221845Dan4LifeNile (IOI24_nile)C++20
0 / 100
2094 ms4364 KiB
#include "nile.h" #include <bits/stdc++.h> using namespace std; #define pb push_back #define sz(a) (int)a.size() #define all(a) begin(a),end(a) using ll = long long; using ar2 = array<int,2>; using ar3 = array<int,3>; using vi = vector<int>; using vll = vector<ll>; const int mxN = (int)1e5+10; const int INF = (int)1e9+10; const ll LINF = (ll)1e18+10; int n, q; ll dp[mxN]; vll calculate_costs(vi W, vi A, vi B, vi E){ n = sz(W); q = sz(E); vll ans; ans.clear(); ll tot = accumulate(all(B),0ll); vi v(n,0); iota(all(v),0); sort(all(v),[&](int i, int j){ return W[i]<W[j]; }); for(auto D:E){ dp[0] = 0; for(int i = 1; i <= n; i++){ dp[i] = dp[i-1] + A[v[i-1]]; ll mn = LINF; for(int j = i-1; j>=1; j--){ if(W[v[i-1]]-W[v[j-1]]>D) break; dp[i] = min(dp[i], dp[j-1]+B[v[i-1]]+B[v[j-1]]+((i-j-1)%2)*mn); mn = min(mn, (ll)A[v[j-1]]); } } ans.pb(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...