Cod sursa(job #3254070)

Utilizator Radu_GrigorieGrigorie Radu Stefan Radu_Grigorie Data 5 noiembrie 2024 22:17:01
Problema Pachete Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.96 kb
#include <fstream>
#include <algorithm>
using namespace std;
ifstream fin("pachete.in");
ofstream fout("pachete.out");
struct nr
{
    int i;
    int j;
};
nr v1[50005], v2[50005], v3[50005], v4[50005];
bool cmp1(nr a, nr b)
{
    return a.i>b.i||(a.i==b.i&&a.j>b.j);
}
bool cmp2(nr a, nr b)
{
    return a.i<b.i||(a.i==b.i&&a.j<b.j);
}
int main()
{
    long long n, x, y, ii, jj, k1=0, k2=0, k3=0, k4=0, maxim=0, cnt=0;
    fin >> n >> ii >> jj;
    for(int t=1; t<=n; t++)
    {
        fin >> x >> y;
        if(x>=ii)
        {
            if(y>=jj)
            {
                k1++;
                v1[k1].i=x-ii;
                v1[k1].j=y-jj;
            }
            else
            {
                k4++;
                v4[k4].i=x-ii;
                v4[k4].j=jj-y;
            }
        }
        else
        {
            if(y>=jj)
            {

                k2++;
                v2[k2].i=ii-x;
                v2[k2].j=y-jj;
            }
            else
            {
                k3++;
                v3[k3].i=ii-x;
                v3[k3].j=jj-y;
            }
        }
    }
    sort(v1+1, v1+k1+1, cmp2);
    sort(v2+1, v2+k2+1, cmp2);
    sort(v3+1, v3+k3+1, cmp2);
    sort(v4+1, v4+k4+1, cmp2);
    maxim=0;
    if(k1) cnt++;
    if(k2) cnt++;
    if(k3) cnt++;
    if(k4) cnt++;
    for(int t=2; t<=k1; t++)
    {
        if(v1[t].j<v1[t-1].j&&v1[t].i!=v1[t-1].i)
        {
            cnt++;
        }
    }
    maxim=0;
    for(int t=2; t<=k4; t++)
    {
        if(v4[t].j<v4[t-1].j&&v4[t].i!=v4[t-1].i)
        {
            cnt++;
        }
    }
    maxim=0;
    for(int t=2; t<=k2; t++)
    {
        if(v2[t].j<v2[t-1].j&&v2[t].i!=v2[t-1].i)
        {
            cnt++;
        }
    }
    maxim=0;
    for(int t=2; t<=k3; t++)
    {
        if(v3[t].j<v3[t-1].j&&v3[t].i!=v3[t-1].i)
        {
            cnt++;
        }
    }
    fout << cnt;
    return 0;
}