Pagini recente » Cod sursa (job #1089441) | Cod sursa (job #2925860) | Cod sursa (job #772429) | Cod sursa (job #2900916) | Cod sursa (job #142886)
Cod sursa(job #142886)
#include<stdio.h>
#include<stdlib.h>
#define N 1010
struct coordonate{
int x,y;
};
coordonate coord[N],panta[N*N];
int compara(const void*a,const void *b){
coordonate *aa=(coordonate*)a,*bb=(coordonate*)b;
coordonate ia=*aa,ib=*bb;
if (ia.x*ib.y>ia.y*ib.x)
return 1;
if (ia.x*ib.y<ia.y*ib.x)
return -1;
return 0;
}
int main(){
int k=-1,n,i,j,s=0,t=1;
freopen("trapez.in","r",stdin);
freopen("trapez.out","w",stdout);
scanf("%d",&n);
for (i=0;i<n;++i)
scanf("%d%d",&coord[i].x,&coord[i].y);
for (i=0;i<n-1;++i)
for (j=i+1;j<n;++j){
++k;
panta[k].x=coord[j].x-coord[i].x;
panta[k].y=coord[j].y-coord[i].y;
}
qsort(panta,k+1,sizeof(panta[0]),compara);
t=1;
for (i=0;i<=k;++i){
if (panta[i].x*panta[i+1].y==panta[i].y*panta[i+1].x)
++t;
else{
s+=t*(t-1)/2;
t=1;
}
//printf("%d %d\n",panta[i].x,panta[i].y);
}
printf("%d\n",s);
return 0;
}