Pagini recente » Cod sursa (job #1592259) | Cod sursa (job #2430568) | Cod sursa (job #2961269) | Cod sursa (job #2742661) | Cod sursa (job #971156)
Cod sursa(job #971156)
#include <iostream>
#include <fstream>
#include <cmath>
#include <algorithm>
using namespace std;
ifstream f("pachete.in");
ofstream g("pachete.out");
long long n,fx,fy,vx[50005],vy[50005],k1,k2,k3,k4;
long long double z1[50005],z2[50005],z3[50005],z4[50005];
void Read()
{ long long i;
f>>n>>fx>>fy;
for(i=1;i<=n;i++)
{ f>>vx[i]>>vy[i];
vx[i]-=fx;
vy[i]-=fy;
cout<<vx[i]<<" "<<vy[i]<<"\n";
}
}
double dist(long long x1,long long y1,long long x2,long long y2)
{ double d;
d=((x1-x2)*(x1-x2))+((y1-y2)*(y1-y2));
d=(double) sqrt(d);
return d;
}
void Solve()
{ double sn; long long i,sol=0;
k1=0; k2=0; k3=0; k4=0;
for(i=1;i<=n;i++)
{ sn=(double) dist(vx[i],vy[i],vx[i],0)/dist(vx[i],vy[i],0,0);;
if (vx[i]>=0 && vy[i]>=0) {k1++; z1[k1]=sn;}
if (vx[i]>=0 && vy[i]<0) {k2++; z2[k2]=sn;}
if (vx[i]<0 && vy[i]<=0) {k3++; z3[k3]=sn;}
if (vx[i]<0 && vy[i]>0) {k3++; z4[k4]=sn;}
}
sort(z1+1,z1+k1+1);
sort(z2+1,z2+k2+1);
sort(z3+1,z3+k3+1);
sort(z4+1,z4+k4+1);
for(i=1;i<=k1;i++)
if (z1[i]-z1[i-1]>1e-9) sol++;
for(i=1;i<=k2;i++)
if (z2[i]-z2[i-1]>1e-9) sol++;
for(i=1;i<=k3;i++)
if (z3[i]-z3[i-1]>1e-9) sol++;
for(i=1;i<=k4;i++)
if (z4[i]-z4[i-1]>1e-9) sol++;
g<<sol;
}
long long main()
{ Read();
Solve();
return 0;
}