Submission #1230269

#TimeUsernameProblemLanguageResultExecution timeMemory
1230269warrennFinding Routers (IOI20_routers)C++20
100 / 100
1 ms584 KiB
#include<bits/stdc++.h> #include "routers.h" using namespace std; vector<int> find_routers(int leng, int n, int qu) { pair<int,int>simpan[n+1]; int udh[leng+1]; memset(udh,-1,sizeof udh); int lst=1; for(int q=0;q<n-1;q++){ int l=0; int r=leng; int hmm=-1; while(l<=r){ int mid=(l+r)/2; int idx; if(udh[mid]!=-1){ idx=udh[mid]; } else{ idx=use_detector(mid); udh[mid]=idx; } if(idx>q){ r=mid-1; } else if(idx==q){ hmm=mid; l=mid+1; } else{ l=mid+1; } } simpan[q]={lst,hmm}; //cout<<lst<<" "<<hmm<<" "<<q<<endl; lst=hmm+1; } simpan[n-1]={lst,leng}; vector<int>ans; ans.push_back(0); for(int q=1;q<n;q++){ pair<int,int>prev=simpan[q-1]; pair<int,int>cur=simpan[q]; int sblm=ans.back(); int hihi=cur.first-sblm+prev.second-1; ans.push_back(hihi); } return ans; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...