Cod sursa(job #3346076)

Utilizator Nasa1004Ema Nicole Gheorghe Nasa1004 Data 12 martie 2026 13:38:15
Problema Pachete Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.17 kb
#include <fstream>
#include <algorithm>
#include <vector>
#include <set>

using namespace std;
const int NMAX = 50000;
using ll = long long;

ifstream cin("pachete.in");
ofstream cout("pachete.out");

int solve(vector <pair <ll, ll>>& v) {
    sort(v.begin(), v.end()); ///dupa first, dc nu dupa second
    set <ll> s; ///cu coord
    for(auto [x, y] : v) {
        if(s.size() == 0 || *s.begin() > y)
            s.insert(y);
        else {
            auto pos = s.upper_bound(y);
            pos--;
            ll val = *pos;
            s.erase(val);
            s.insert(y);
        }
    }
    return s.size();
}

vector<pair <ll, ll>> v[4]; ///(+,+), (+,-), (-,+), (-,-)
int main() {
    int n;
    ll x, y;
    cin >> n >> x >> y;
    for(int i = 1; i <= n; i++) {
        ll a, b;
        cin >> a >> b;
        a -= x, b-= y;

        if(a > 0 && b > 0)
            v[0].push_back({a, b});
        else if(a > 0 && b < 0)
            v[1].push_back({a, -b});
        else if(a < 0 && b > 0)
            v[2].push_back({-a, b});
        else
            v[3].push_back({-a, -b});
    }
    int ans = 0;
    for(int i = 0; i < 4; i++)
        ans += solve(v[i]);
    cout << ans;
    return 0;
}