Submission #1294615

#TimeUsernameProblemLanguageResultExecution timeMemory
1294615chaitanyamehtaTowers (NOI22_towers)C++20
0 / 100
590 ms71896 KiB
#include<bits/stdc++.h>
using namespace std;

#define int long long

bool cmp(pair<int , int> a , pair<int , int> b){
    return a.second < b.second;
}

signed main(){
    int n;cin>>n;
    vector<pair<int , int>> t(n);
    vector<int> pos_x(1e6 + 1) , pos_y(1e6+1);

    for(int i = 0 ; i < n; i++){
        int x , y;
        cin>>x>>y;
        t[i] = {x , y};
        pos_x[x]++;
        pos_y[y]++;
    }

    vector<int> built_x(1e6+1 , 0) , built_y(1e6+1 , 0);
    vector<pair<int , int>> ot;

    for(int i = 0 ; i< n ;i++){
        int x = t[i].first , y = t[i].second;
        int temp = max(0LL , pos_x[x]-2);
        temp += max(0LL , pos_y[y] - 2);
        ot.push_back({temp , i});
    }
    sort(ot.begin() , ot.end());
    
    vector<int> ans(n);
    for(int i = 0 ; i < n ;i++){
        int idx = ot[i].second;
        int opt = ot[i].first;
        int x = t[idx].first;
        int y = t[idx].second;

        if(built_x[x] >= 2 || built_y[y] >= 2) continue;

        built_x[x]++;
        built_y[y]++;
        ans[idx] = 1;
    }
    for(int i = 0 ; i < n ; i++){
        cout<<ans[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...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...