Cod sursa(job #3167273)

Utilizator nicushor21Pirlog Marian Nicolae nicushor21 Data 10 noiembrie 2023 15:23:58
Problema Pachete Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.44 kb
#include <iostream>
#include <fstream>
#include <algorithm>
using namespace std;
int n,i,j,st,dr,mid,nrdr;
pair <int,int> clnt[50001],minim[50001];
int main()
{
    ifstream fin("pachete.in");
    ofstream fout("pachete.out");
    fin>>n;
    fin>>clnt[50000].first>>clnt[50000].second;
    nrdr=n;
    for(i=0;i<n;i++){
        fin>>clnt[i].first>>clnt[i].second;
        minim[i].first=abs(clnt[i].first-clnt[50000].first)+abs(clnt[i].second-clnt[50000].second);
        minim[i].second=i;
    }
    sort(minim,minim+n);
    for(i=0;i<n;i++){
        if(clnt[minim[i].second].first!=-1){
            int adv=0;
            for(j=i+1;j<n;j++){
                if(clnt[minim[i].second].first>=min(clnt[minim[j].second].first,clnt[50000].first)&&clnt[minim[i].second].first<=max(clnt[minim[j].second].first,clnt[50000].first)&&clnt[minim[i].second].second>=min(clnt[minim[j].second].second,clnt[50000].second)&&clnt[minim[i].second].second<=max(clnt[minim[j].second].second,clnt[50000].second)&&i!=j&&clnt[minim[j].second].first!=-1){
                    clnt[minim[i].second].first=-1;
                    //cout<<i<<" "<<j<<" "<<minim[i].second<<" "<<minim[j].second;
                    i=j;
                    nrdr--;
                    adv=1;
                }
            }
            if(adv==1){
                clnt[minim[j].second].first=-1;
                i--;
            }
        }
    }
    fout<<nrdr;
    return 0;
}