Pagini recente » Cod sursa (job #2958869) | Cod sursa (job #1845302) | Cod sursa (job #169933) | Cod sursa (job #568076) | Cod sursa (job #3254064)
#include <fstream>
#include <algorithm>
using namespace std;
ifstream fin("pachete.in");
ofstream fout("pachete.out");
struct nr
{
int i;
int j;
};
nr v[4][1000005];
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++;
v[1][k1].i=x-ii;
v[1][k1].j=y-jj;
}
else
{
k4++;
v[4][k4].i=x-ii;
v[4][k4].j=jj-y;
}
}
else
{
if(y>=jj)
{
k2++;
v[2][k2].i=ii-x;
v[2][k2].j=y-jj;
}
else
{
k3++;
v[3][k3].i=ii-x;
v[3][k3].j=jj-y;
}
}
}
sort(v[1]+1, v[1]+k1+1, cmp1);
sort(v[2]+1, v[2]+k2+1, cmp2);
sort(v[3]+1, v[3]+k3+1, cmp2);
sort(v[4]+1, v[4]+k4+1, cmp1);
maxim=0;
for(int t=1; t<=k1; t++)
{
if(v[1][t].j>maxim)
{
maxim=v[1][t].j;
cnt++;
}
}
maxim=0;
for(int t=1; t<=k4; t++)
{
if(v[4][t].j>maxim)
{
maxim=v[4][t].j;
cnt++;
}
}
maxim=0;
for(int t=1; t<=k2; t++)
{
if(v[2][t].j>maxim)
{
maxim=v[2][t].j;
cnt++;
}
}
maxim=0;
for(int t=1; t<=k3; t++)
{
if(v[3][t].j>maxim)
{
maxim=v[3][t].j;
cnt++;
}
}
fout << cnt;
return 0;
}