Pagini recente » Cod sursa (job #2674435) | Cod sursa (job #2646931) | Cod sursa (job #2955281) | Cod sursa (job #2344681) | Cod sursa (job #572814)
Cod sursa(job #572814)
#include<stdio.h>
#include<stdlib.h>
FILE*fin,*fout;
double v[1000001];
int i,j,n,nrt,a[1001],b[1001],nr,px,py;
double abs(double x){
if(x<0){return -x;}
return x;
}
int cmp(const void*a,const void *b){
//if((*(pante*)a).x<0&&(*(pante*)b).x>0){
//return -1;
//if((*(pante*)a).x>0&&(*(pante*)b).x<0){return 1;}
//return (*(pante*)a).x*((*(pante*)b).y)-(*(pante*)b).x*((*(pante*)a).y);
//}
//return (*(pante*)b).x-(*(pante*)a).x;
return *(double*)a-*(double*)b;
}
int main(){
fin=fopen("trapez.in","r");
fout=fopen("trapez.out","w");
fscanf(fin,"%d",&n);
for(i=1;i<=n;i++){
fscanf(fin,"%d %d",&a[i],&b[i]);
}
int ok=1;
for(i=1;i<=n;i++){
for(j=i+1;j<=n;j++){
ok=1;
if(b[i]==b[j]){px++;ok=0;}
if(a[i]==a[j]){py++;ok=0;}
if(ok==1) {
nr++;
v[nr]=(1.0*b[j]-b[i])/(a[j]-a[i]);
}
}
}
nrt=0;
int nrt1;
qsort(v+1,nr,sizeof(double),cmp);
for(i=1;i<=nr;i++){
j=i+1; nrt1=1;
while(abs(v[j]-v[i])<=0.000000000000001){nrt1++;j++;}
nrt=nrt+nrt1*(nrt1-1)/2;
i=j-1;
}
nrt=nrt+px*(px-1)/2;
nrt=nrt+py*(py-1)/2;
fprintf(fout,"%d",nrt);
return 0;
}