Submission #1205966

#TimeUsernameProblemLanguageResultExecution timeMemory
1205966JakobZorzNile (IOI24_nile)C++20
17 / 100
2096 ms5636 KiB
#include "nile.h" #include<algorithm> #include<iostream> using namespace std; typedef long long ll; vector<ll>calculate_costs(vector<int>W,vector<int>A,vector<int>B,vector<int>E){ vector<pair<int,pair<int,int>>>arr; // (W, (A, B)) int n=(int)W.size(); for(int i=0;i<n;i++){ arr.push_back({W[i],{A[i],B[i]}}); } sort(arr.begin(),arr.end()); vector<ll>res; vector<ll>pref(n+1); for(int i=0;i<n;i++) pref[i+1]=pref[i]+arr[i].second.first; for(int D:E){ vector<ll>dp(n+1); dp[0]=0; for(int i=1;i<=n;i++){ // pripelji samega dp[i]=dp[i-1]+arr[i-1].second.first; // pripelji i-1 skupaj z j for(int j=0;j<i-1;j++){ if(abs(arr[i-1].first-arr[j].first)<=D){ dp[i]=min(dp[i],dp[j]+arr[i-1].second.second+arr[j].second.second+pref[i-1]-pref[j+1]); } } } res.push_back(dp[n]); /*cout<<"W: "; for(int i=0;i<n;i++) cout<<arr[i].first<<" "; cout<<"\n"; cout<<"A: "; for(int i=0;i<n;i++) cout<<arr[i].second.first<<" "; cout<<"\n"; cout<<"B: "; for(int i=0;i<n;i++) cout<<arr[i].second.second<<" "; cout<<"\n"; cout<<"dp: "; for(int i=0;i<=n;i++) cout<<dp[i]<<" "; cout<<"\n";*/ } return res; }
#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...