Pagini recente » Cod sursa (job #66671) | Cod sursa (job #2757419) | Cod sursa (job #2416434) | Cod sursa (job #1953862) | Cod sursa (job #305997)
Cod sursa(job #305997)
#include<stdio.h>
#include<stdlib.h>
#define NMAX 1001
int x[NMAX],y[NMAX],n;
struct dreapta
{
long numitor,numarator;
};
dreapta m[NMAX*NMAX];
int cmp(const void* a,const void* b)
{
dreapta x,y;
x=*(dreapta*)a;
y=*(dreapta*)b;
if(x.numarator*y.numitor>x.numitor*y.numarator)
return 1;
else
if(x.numarator*y.numitor<x.numitor*y.numarator)
return -1;
else
return 0;
}
int main()
{
int i,j,contor=0,lung=0;
freopen("trapez.in","r",stdin);
freopen("trapez.out","w",stdout);
scanf("%d",&n);
for(i=1;i<=n;i++)
scanf("%d%d",&x[i],&y[i]);
for(i=1;i<n;i++)
for(j=i+1;j<=n;j++)
{
m[lung].numarator=x[i]-x[j];
m[lung++].numitor=y[i]-y[j];
// printf("%d %d\n",m[i].numarator,m[i].numitor);
}
qsort(m,lung,sizeof(dreapta),cmp);
for(i=0;i<lung-1;i++)
{
if(m[i].numarator*m[i+1].numitor==m[i].numitor*m[i+1].numarator)
{
contor++;
// printf("%d %d %d %d\n",m[i].numarator,m[i+1].numitor,m[i].numitor,m[i+1].numarator);
}
}
printf("%d",contor);
return 0;
}