Submission #210072

#TimeUsernameProblemLanguageResultExecution timeMemory
210072mohamedsobhi777Robots (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...