Submission #955568

#TimeUsernameProblemLanguageResultExecution timeMemory
955568Prieved1Overtaking (IOI23_overtaking)C++17
39 / 100
3543 ms24612 KiB
#include "overtaking.h" #include <iostream> #include <vector> #include <algorithm> using namespace std; long long speed; vector<vector<long long>> ta; vector<int> ss; vector<vector<pair<long long, long long>>> pr; long long asdf=0; void init(int L, int N, std::vector<long long> T, std::vector<int> W, int X, int M, std::vector<int> S) { speed=X; asdf=S.back()*speed; ta=vector<vector<long long>> (M, vector<long long> (N)); ss=S; for(int i = 0;i<M;i++) { for(int j = 0;j<N;j++) { if(i==0)ta[i][j]=T[j]; else ta[i][j]=ta[i-1][j]+(long long)(S[i]-S[i-1])*W[j]; } if(i){ vector<pair<pair<long long, long long>, int>> idxx; for(int j = 0;j<N;j++) { idxx.push_back({{ta[i-1][j], ta[i][j]}, j}); } sort(idxx.begin(), idxx.end()); for(int k = 1;k<N;k++) { ta[i][idxx[k].second]=max(ta[i][idxx[k].second], ta[i][idxx[k-1].second]); } } } pr.resize(M); for(int i =0 ;i<M;i++) { for(int j = 0;j<N;j++) { ta[i][j]-=S[i]*speed; if(i) pr[i].push_back({ta[i-1][j], ta[i][j]}); } } } long long arrival_time(long long Y) { long long ans=Y; for(int i =0;i<pr.size();i++) { long long tmp=0; for(auto j:pr[i]) { if(j.first < ans)tmp=max(tmp, j.second); } ans=max(ans, tmp); } return ans+asdf; }

Compilation message (stderr)

overtaking.cpp: In function 'long long int arrival_time(long long int)':
overtaking.cpp:44:17: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::vector<std::pair<long long int, long long int> > >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   44 |   for(int i =0;i<pr.size();i++) {
      |                ~^~~~~~~~~~
#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...