Submission #1235100

#TimeUsernameProblemLanguageResultExecution timeMemory
1235100ricardsjansonsNile (IOI24_nile)C++20
6 / 100
23 ms5448 KiB
#include "nile.h" #include <bits/stdc++.h> #define ll long long using namespace std; int n; vector<int>w,a,b,c; ll f(int d){ ll res=0; for(int i=0,j=0;i<n;i=++j){ res+=b[i]; while(j+1<n&&w[j+1]-w[i]<=d){ res+=b[++j]; } if((j-i)%2){ continue; } int best=i; if(c[j]<c[i]){ best=j; } for(int k=i+1;k<j;k++){ if((k-i)%2==0||w[k+1]-w[k-1]<=d){ if(c[k]<c[best]){ best=k; } } } res+=c[best]; } return res; } vector<ll> calculate_costs(vector<int>W,vector<int>A,vector<int>B,vector<int>E) { n=A.size(); vector<tuple<int,int,int>>arts(n); for(int i=0;i<n;i++){ arts[i]={W[i],A[i],B[i]}; } sort(arts.begin(),arts.end()); w.resize(n); a.resize(n); b.resize(n); c.resize(n); for(int i=0;i<n;i++){ tie(w[i],a[i],b[i])=arts[i]; c[i]=a[i]-b[i]; } vector<ll>r; for(int d:E){ r.push_back(f(d)); } 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...