Pagini recente » Cod sursa (job #2303960) | Cod sursa (job #1825776) | Cod sursa (job #2376895) | Cod sursa (job #1169390) | Cod sursa (job #3254070)
#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;
}