This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include "robots.h"
#include <bits/stdc++.h>
const int N = 1e6 + 6 ;
using namespace std ;
int AA , BB , TT ;
vector<int> XX , YY , WW , SS ;
vector<int> appear[N] ;
bool check(int x){
priority_queue<int> q ;
for(int i = 0 ; i < AA ; i++){
for(int j = 0 ; j < appear[i].size() ; j++){
q.push(appear[i][j]) ;
}
int sz = min((int)q.size() , x) ;
for(int j = 0 ; j < sz ; j++){
q.pop() ;
}
}
for(int i = 0 ; i < appear[AA].size() ; i++){
q.push(appear[AA][i]) ;
}
for(int i = 0 ; i < BB ; i++){
int sz = min((int)q.size() , x ) ;
for(int j = 0 ; j < sz ; j++){
if(q.top() < YY[i])
{
q.pop() ;
}
else break;
}
}
return !q.size();
}
int putaway(int A, int B, int T, int X[], int Y[], int W[], int S[]) {
AA = A ; BB = B ; TT = T ;
for(int i = 0 ; i < A ; i++){
XX.push_back(X[i]) ;
}
for(int i = 0 ; i < B ; i++){
YY.push_back(Y[i]) ;
}
sort(XX.begin() , XX.end()) ;
sort(YY.begin() , YY.end()) ;
for(int i = 0 ; i < T ; i++){
int i1 = upper_bound(XX.begin() , XX.end() , W[i] ) - XX.begin() ;
int i2 = upper_bound(YY.begin() , YY.end(), S[i]) - YY.begin() ;
if(i1==A && i2==B)
return -1 ;
appear[i1].push_back(S[i]) ;
}
for(int i = 0 ; i < A ; i++){
sort(appear[i].begin() , appear[i].end() , greater<int>()) ;
}
sort(YY.begin() , YY.end(), greater<int>()) ;
int l = 1 , r = T ;
int ans = -1;
while(l<=r){
int mid = (l+r) /2;
if(check(mid)){
ans = mid ;
r = mid - 1 ;
}
else{
l = mid + 1 ;
}
}
return ans ;
}
Compilation message (stderr)
robots.cpp: In function 'bool check(int)':
robots.cpp:16:31: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for(int j = 0 ; j < appear[i].size() ; j++){
~~^~~~~~~~~~~~~~~~~~
robots.cpp:24:27: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for(int i = 0 ; i < appear[AA].size() ; i++){
~~^~~~~~~~~~~~~~~~~~~
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |