Cod sursa(job #767658)

Utilizator gicu_01porcescu gicu gicu_01 Data 14 iulie 2012 12:00:13
Problema Trapez Scor 50
Compilator c Status done
Runda Arhiva de probleme Marime 0.91 kb
#include <stdio.h>
long double pan[1000002];
long double a[1002][2];
long i,j,n,m;


void qsort(long l,long r)
{
long ii,jj;
long double x,y;
ii=l;jj=r;x=pan[(l+r)/2];
do{
while(pan[ii]<x){ii++;}
while(pan[jj]>x){jj--;}
if(ii<=jj){
        y=pan[ii];pan[ii]=pan[jj];pan[jj]=y;
ii++;jj--;
          }
  }while(ii<=jj);
  if(l<jj){qsort(l,jj);}
  if(ii<r){qsort(ii,r);}
}
int main()
{
	freopen("trapez.in","r",stdin);
	freopen("trapez.out","w",stdout);
	scanf("%ld",&n);
	for(i=1;i<=n;i++)  scanf("%ld%ld",&a[i][0],&a[i][1]);
	for(i=1;i<=n;i++)
	{
	    for(j=i+1;j<=n;j++)
	    {
            if(a[i][1]-a[j][1]) pan[++m]=((a[i][0]-a[j][0])*1000000000000.0)/(a[i][1]-a[j][1]);
            else  pan[++m]=2000000002*1000000000000.0;
        }
    }
qsort(1,m);
n=0;
pan[m+1]=0.999999999;
for(i=1;i<=m;i++){
	j=i+1;
	while(pan[i]==pan[j]){n++;j++;}
            }
printf("%ld",n);
return 0;
}