Submission #1310268

#TimeUsernameProblemLanguageResultExecution timeMemory
1310268StefanSebez로봇 (IOI13_robots)C++20
100 / 100
1231 ms13116 KiB
#include "robots.h" #include<bits/stdc++.h> using namespace std; #define fi first #define se second #define pb push_back #define ll long long #define ld long double #define mp make_pair vector<int>X,Y; vector<pair<int,int>>Z; bool Check(int mid){ priority_queue<int>pq; for(int i=0,j=0;i<=X.size();i++){ if(i==X.size()){ while(j<Z.size())pq.push(Z[j++].se); break; } while(j<Z.size()&&Z[j].fi<X[i])pq.push(Z[j++].se); for(int k=0;k<mid;k++){ if(pq.empty())break; pq.pop(); } } for(int i=(int)Y.size()-1;i>=0;i--){ for(int k=0;k<mid;k++){ if(pq.empty())return true; if(pq.top()>=Y[i])return false; pq.pop(); } } return pq.empty(); } int putaway(int A, int B, int T, int X1[], int Y1[], int W[], int S[]) { for(int i=0;i<A;i++)X.pb(X1[i]);X.pb(0); sort(X.begin(),X.end()); for(int i=0;i<B;i++)Y.pb(Y1[i]);Y.pb(0); sort(Y.begin(),Y.end()); for(int i=0;i<T;i++)Z.pb({W[i],S[i]}); sort(Z.begin(),Z.end()); int l=1,r=Z.size(),res=-1; while(l<=r){ int mid=l+r>>1; if(Check(mid))res=mid,r=mid-1; else l=mid+1; } return res; }
#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...