Submission #232342

#TimeUsernameProblemLanguageResultExecution timeMemory
232342keta_tsimakuridzeRobots (IOI13_robots)C++14
0 / 100
5 ms384 KiB
#include<bits/stdc++.h> #include "robots.h" using namespace std; long long n,m,q,c[5000005],b[5000000],aa[5000005],aaa[5000005],l,r,mid,ans,d,k,i; pair<long long,long long>p[5000005]; multiset<long long>s; int putaway(int n, int m, int q, int c[],int b[],int aa[],int aaa[]){ for(k=0;k<q;k++){ p[k].first=aa[k]; p[k].second=aaa[k]; } sort(c,c+n); sort(b,b+m); sort(p,p+q); l=1; r=q+1; ans=-1; //cout<<b[1]<<" "<<b[2]<<endl; while(l<=r){ long long mid=(l+r)/2; i=0; s.clear(); for(k=0;k<n;k++){ d=mid; while(i<q-1 && c[k]>p[i+1].first ){ i++; s.insert(p[i].second); //if(mid==1) cout<<p[i].second<<"+"<<endl; } while(d>0 && s.size()!=0){ d--; multiset<long long>::iterator it=s.end(); it--; //if(mid==1) cout<<*it<<"-"<<endl; s.erase(s.find(*it)); }} for(i=i+1;i<q;i++){ s.insert(p[i].second); } //if(mid==1)cout<<s.size()<<endl; for(k=0;k<m;k++){ d=mid; while(d>0 && s.size()!=0){ d--; long long st=*s.begin(); if(st>=b[k]) break; s.erase(s.find(st)); } } if(s.size()>0) l=mid+1; else{ r=mid-1; ans=mid; } } 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...
#Verdict Execution timeMemoryGrader output
Fetching results...