Submission #210072

#TimeUsernameProblemLanguageResultExecution timeMemory
210072mohamedsobhi777로봇 (IOI13_robots)C++14
0 / 100
10 ms4344 KiB
#include "robots.h" #include <bits/stdc++.h> const int N = 1e6 + 6 ; int AA , BB , TT ; int XX[N] , YY[N] , WW[N] , SS[N] ; using namespace std ; bool check(int x){ vector< pair<int, int > > fr , se; for(int i = 0 ; i < TT ; i++){ fr.push_back({WW[i] , i }) ; } sort(fr.begin() , fr.end()) ; vector<int> vis(N , 0 ); for(int i = 0 ; i < AA && fr.size(); i++){ int j = (int)(lower_bound(fr.begin() , fr.end() , make_pair(XX[i] , 0) ) - fr.begin()) ; if(!j)continue; j--; vector<int> aux; int k = x ; while(k-- && j>=0){ int r = fr[j].second ; if(vis[r]){ k++ ; j--; continue ; } vis[r] ++ ; j--; } } for(auto u : fr){ if(!vis[u.second]){ se.push_back({SS[u.second] , u.second}) ; } } return !se.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[i] = X[i] ; for(int i = 0 ; i < B ; i++)YY[i] = Y[i] ; for(int i = 0 ; i < T ; i++){ WW[i] = W[i] ; SS[i] = S[i] ; } sort(XX , XX + AA) ; sort(YY , YY + BB) ; int l = 1 , r = T ; int ans = -1; while(l<=r){ int mid = (l+r) /2; cout<<l <<" " << r<<" " << mid<<"\n" ; if(check(mid)){ ans = mid ; r = mid - 1 ; } else{ l = mid + 1 ; } } 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...