Pagini recente » Cod sursa (job #1914913) | Cod sursa (job #707507) | Cod sursa (job #1314455) | Cod sursa (job #236371) | Cod sursa (job #3254068)
#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, cmp1);
sort(v2+1, v2+k2+1, cmp1);
sort(v3+1, v3+k3+1, cmp1);
sort(v4+1, v4+k4+1, cmp1);
maxim=0;
for(int t=1; t<=k1; t++)
{
if(v1[t].j>maxim)
{
maxim=v1[t].j;
cnt++;
}
}
maxim=0;
for(int t=1; t<=k4; t++)
{
if(v4[t].j>maxim)
{
maxim=v4[t].j;
cnt++;
}
}
maxim=0;
for(int t=1; t<=k2; t++)
{
if(v2[t].j>maxim)
{
maxim=v2[t].j;
cnt++;
}
}
maxim=0;
for(int t=1; t<=k3; t++)
{
if(v3[t].j>maxim)
{
maxim=v3[t].j;
cnt++;
}
}
fout << cnt;
return 0;
}