Submission #899648

#TimeUsernameProblemLanguageResultExecution timeMemory
899648LudisseyOvertaking (IOI23_overtaking)C++17
0 / 100
1 ms348 KiB
#include "overtaking.h" #include <bits/stdc++.h> using namespace std; #define int long long int l,n,x,m; vector<int> t,w,s; void init(signed L, signed N, std::vector<long long> T, std::vector<signed> W, signed X, signed M, std::vector<signed> S) { l=L; n=N; x=X; m=M; swap(t,T); s.assign(S.begin(),S.end()); w.assign(W.begin(),W.end()); return; } long long arrival_time(long long Y) { if(x>=w[0]||s[0]>=Y) return x*s[m-1] + Y; int eqPos=upper_bound(s.begin(),s.end(), w[0]*((Y-s[0])/(w[0]-x)))-s.begin(); for (int i = 1; i < m; i++) { if(x*s[i]+Y<t[0]+w[0]*s[i]) {eqPos=i; break;} } //cerr << eqPos << "\n"; if(eqPos>=m) return x*s[m-1] + Y; return (w[0]*s[eqPos]+t[0])+(s[m-1]-s[eqPos])*x; }
#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...