제출 #1219492

#제출 시각아이디문제언어결과실행 시간메모리
1219492boclobanchatRobots (IOI13_robots)C++20
0 / 100
0 ms328 KiB
#include"robots.h" #include<bits/stdc++.h> using namespace std; int putaway(int A,int B,int T,int X[],int Y[],int W[],int S[]) { vector< pair<int,int> > vi; for(int i=0;i<T;i++) vi.push_back({W[i],S[i]}); sort(vi.begin(),vi.end()); sort(X,X+A); sort(Y,Y+B,greater<int>()); int l=1,r=T,ans=-1; while(l<=r) { int mid=(l+r)/2,p=A-1; priority_queue<int> pq; vector<int> w; for(int i=T-1;i+1;i--) if(vi[i].first>X[A-1]) w.push_back(vi[i].second); else { while(p>0&&vi[i].first<=X[p-1]) { for(int j=1;j<=mid&&!pq.empty();j++) pq.pop(); while(!pq.empty()) w.push_back(pq.top()),pq.pop(); p--; } pq.push(vi[i].second); } for(int j=1;j<=mid&&!pq.empty();j++) pq.pop(); while(!pq.empty()) w.push_back(pq.top()),pq.pop(); sort(w.begin(),w.end(),greater<int>()); int f=mid,pt=0; bool ck=true; for(auto v:w) { if(f==0) pt++,f=mid; if(pt==B||v>Y[pt]) { ck=false; break; } f--; } if(!ck) 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...