Submission #980973

#TimeUsernameProblemLanguageResultExecution timeMemory
980973vjudge1Overtaking (IOI23_overtaking)C++17
19 / 100
4 ms604 KiB
#include "overtaking.h" #include<bits/stdc++.h> using namespace std; using lli=long long; #define pb push_back lli Nx; lli Ti; lli Wi; lli Xi; lli Lx; vector<int> st; vector<pair<lli,lli>> val; void init(int L, int N, vector<long long> T, vector<int> W, int X, int M, vector<int> S) { Nx=N; if(N==1){ Ti=T[0]; Wi=W[0]; Xi=X; st=S; return; } Lx=L; Xi=X; for(int i=0; i<N; ++i){ val.pb({T[i], W[i]}); } sort(val.begin(), val.end()); return; } long long arrival_time(long long Y) { if(Nx==1){ lli M=st.size(); vector<lli> t (M); vector<lli> yi (M); t[0]=Ti; yi[0]=Y; for(lli i=1; i<M; ++i){ t[i]=t[i-1]+(st[i]-st[i-1])*Wi; yi[i]=yi[i-1]+(st[i]-st[i-1])*Xi; if(t[i-1]>yi[i-1]){ if(t[i]<yi[i]){ t[i]=yi[i]; } } else if(t[i-1]<yi[i-1]){ if(t[i]>yi[i]){ yi[i]=t[i]; } } } return yi[M-1]; } lli valmax=Y+Lx*Xi; for(lli i=0; i<Nx; ++i){ if(val[i].first<Y){ valmax=max(valmax, val[i].first+Lx*val[i].second); } } return valmax; }
#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...