제출 #743186

#제출 시각아이디문제언어결과실행 시간메모리
743186vjudge1Lightning Rod (NOI18_lightningrod)C++17
40 / 100
2074 ms136944 KiB
#include<bits/stdc++.h>

using namespace std;

using ll = long long ;
using pii = pair<ll , ll> ;
using i3 = tuple<ll , ll , ll> ;

const int N = 2e5+5  ;
const int MOD = 1e9+7 ;

int n ;

map<pii , bool> vis ;

struct Points {
    int x , y ;
    bool operator<(const Points &other) const {
        if(y != other.y)
            return y > other.y ;
        else return x > other.x ;
    }
};

vector<Points> point ;

int main(){
    ios_base::sync_with_stdio(0); cin.tie(0);

    cin >> n ;
    for(int i=0;i<n;i++){
        int x , y ; cin >> x >> y ;
        point.push_back({x , y}) ;
    }

    sort(point.begin() , point.end());


    int i = 0 , cnt = 0 , ans = 0 ;
    while(cnt < n && i < n){
        int curx = point[i].x , cury = point[i].y ;
        if(vis[pii(curx , cury)]){
            i++;
           continue ;
        }
        ans++;
        vis[pii(curx , cury)] = true ;
        for(auto [x , y] : point){
            if(abs(x - curx) > cury - y) continue ;
            if(vis[pii(x , y)]) continue ;
            vis[pii(x,y)] = true ;
            cnt++;
        }
        i++;
    }

    cout << 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...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...