Submission #1310267

#TimeUsernameProblemLanguageResultExecution timeMemory
1310267StefanSebezRobots (IOI13_robots)C++20
90 / 100
3096 ms9232 KiB
//Hall theorem #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; 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 res=0; int num[B+1]={0}; for(int i=A,k=T-1;i>=0&&res!=-1;i--){ while(k>=0&&Z[k].fi>=X[i]){ int lb=upper_bound(Y.begin(),Y.end(),Z[k].se)-Y.begin()-1; num[lb]++; k--; } for(int j=B,x=0;j>=0&&res!=-1;j--){ int y=A-i+B-j; x+=num[j]; if(y==0){if(x>0)res=-1;continue;} res=max(res,(x+y-1)/y); } } 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...