Submission #1215244

#TimeUsernameProblemLanguageResultExecution timeMemory
1215244Cauchico나일강 (IOI24_nile)C++20
67 / 100
2081 ms6060 KiB
#include "nile.h" #include <bits/stdc++.h> using namespace std; typedef long long ll; ll INF = (int)5e18; vector<ll> calculate_costs(vector<int> W, vector<int> A, vector<int> B, vector<int> E) { int Q = (int)E.size(); int n = (int)W.size(); vector<array<int,3>> all(n); for (int i=0;i<n;i++) { all[i] = {W[i],A[i],B[i]}; } sort(all.begin(),all.end()); for (int i=0;i<n;i++) { W[i] = all[i][0]; A[i] = all[i][1]; B[i] = all[i][2]; } W.insert(W.begin(),0); A.insert(A.begin(),0); B.insert(B.begin(),0); vector<ll> R(Q, 0); for (int t=0; t<Q;t++) { int D = E[t]; vector<ll> dp(n+1,0); dp[1] = A[1]; for (int i=2;i<=n;i++) { dp[i] = dp[i-1] + A[i]; if (abs(W[i]-W[i-1]) <= D) dp[i] = min(dp[i], dp[i-2] + B[i] + B[i-1]); if (i > 2 and abs(W[i]-W[i-2]) <= D) dp[i] = min(dp[i], dp[i-3] + B[i-2] + A[i-1] + B[i]); } R[t] = dp.back(); } return R; }
#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...