Pagini recente » Cod sursa (job #1379725) | Cod sursa (job #2983222) | Cod sursa (job #2676560) | Cod sursa (job #1920116) | Cod sursa (job #6962)
Cod sursa(job #6962)
#include<fstream.h>
#include<math.h>
long x[2000],y[2000];
int cadran(int a, int b, int x, int y)
{if(a-x<=0&&b-y<=0) return 1;
if(a-x>=0&&b<y<=0) return 2;
if(a-x>0&&b-y>0) return 3;
if(a-x<0&&b-y>0) return 4;
}
int main()
{long dist[2000],a=0,b=0,aux=0;
int n=0;
memset(dist,0,sizeof(dist));
ifstream f("pachete.in");
ofstream g("pachete.out");
f>>n;
f>>a>>b;
for(int i=1; i<=n; i++)
{f>>x[i];
f>>y[i];
dist[i]=abs(a-x[i])+abs(b-y[i]);}
int k=1;
while(k)
{k=0;
for(i=1; i<n; i++)
if(dist[i]<dist[i+1]){aux=dist[i];
dist[i]=dist[i+1];
dist[i+1]=aux;
aux=x[i];
x[i]=x[i+1];
x[i+1]=aux;
aux=y[i];
y[i]=y[i+1];
y[i+1]=aux;
k=1;}
}
k=0; int c=0;
for(i=1; i<=n; i++)
if(x[i]>0)
{c=cadran(a,b,x[i],y[i]);
for(int j=i+1; j<=n; j++)
if(x[j]>0)
if(c==cadran(a,b,x[j],y[j]) )
{if(c==1)
if(x[j]<=x[i]&&x[j]>=a&&y[j]<=y[i]&&y[j]>=b)
x[j]=-1;
if(c==2)
if(x[j]>=x[i]&&x[j]<=a&&y[j]<=y[i]&&y[j]>=b)
x[j]=-1;
if(c==3)
if(x[j]>=x[i]&&x[j]<=a&&y[j]>=y[i]&&y[j]<=b)
x[j]=-1;
if(c==4)
if(x[j]<=x[i]&&x[j]>=a&&y[j]>=y[i]&&y[j]<=b)
x[j]=-1;
}
k++;}
g<<k;
return 0;}