Submission #964183

#TimeUsernameProblemLanguageResultExecution timeMemory
964183vivkostovRobots (IOI13_robots)C++14
100 / 100
1511 ms29752 KiB
#include<bits/stdc++.h> #include "robots.h" using namespace std; void speed() { ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); } struct cell { int w,s; bool operator<(const cell&a1)const { return s<a1.s; } }; bool cmp(cell a1,cell a2) { return a1.w<a2.w; } int n,m,t,a[1000005],b[1000005]; cell c[1000005]; priority_queue<cell>q; bool check(int h) { int j=0; for(int i=0;i<n;i++) { while(c[j].w<a[i]&&j<t) { q.push(c[j]); j++; } int g=h; while(g&&!q.empty()) { q.pop(); g--; } } for(;j<t;j++)q.push(c[j]); for(int i=m-1;i>=0;i--) { int g=h; if(!q.empty()&&q.top().s>=b[i])return false; while(g&&!q.empty()) { g--; q.pop(); } } if(!q.empty())return false; return true; } int putaway(int N,int M,int T,int A[],int B[],int W[],int S[]) //void read() { //cin>>n>>m>>t; n=N; m=M; t=T; for(int i=0;i<n;i++) { //cin>>a[i]; a[i]=A[i]; } sort(a,a+n); for(int i=0;i<m;i++) { //cin>>b[i]; b[i]=B[i]; } sort(b,b+m); for(int i=0;i<t;i++) { //cin>>c[i].w>>c[i].s; c[i].w=W[i]; c[i].s=S[i]; } sort(c,c+t,cmp); int l=1,r=t,mi; while(l<=r) { mi=(l+r)/2; if(check(mi))r=mi-1; else l=mi+1; while(!q.empty())q.pop(); //cout<<l<<" "<<r<<endl; } if(l==t+1) { //cout<<-1<<endl; //return; return -1; } //cout<<l<<endl; return l; } /*int main() { speed(); read(); return 0; } */
#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...