Cod sursa(job #571043)

Utilizator alexamiu2008Miu Alexandra alexamiu2008 Data 3 aprilie 2011 21:57:15
Problema Trapez Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.77 kb
#include<stdio.h>
#include<stdlib.h>
FILE*fin,*fout;
double v[1001];
int i,j,n,nrt,nr,px,py;
double a[1001],b[1001];
int cmp(const void *a,const void*b){
 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,"%llf %llf",&a[i],&b[i]);
}
for(i=1;i<=n;i++){
for(j=i+1;j<=n;j++){
if(b[i]==b[j]){px++;}
if(a[i]==a[j]){py++;}
else   {
nr++;
v[nr]=b[j]-b[i];
v[nr]=v[nr]/(a[j]-a[i]);
}
}


}
       int nr1;		  nrt=0;
qsort(v+1,nr,sizeof(double),cmp);
for(i=1;i<=nr;i++){
j=i+1;         nr1=1;
while(v[j]-v[i]<=0.00000000001&&j<=n){
j++;nr1++;
}
nrt=nrt+nr1*(nr1-1)/2;
}
nrt=nrt+px*(px-1)/2;
nrt=nrt+py*(py-1)/2;
fprintf(fout,"%d",nrt);
return 0;
}