Submission #210141

#TimeUsernameProblemLanguageResultExecution timeMemory
210141mohamedsobhi777Robots (IOI13_robots)C++14
100 / 100
1761 ms46996 KiB
#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 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...