Cod sursa(job #714124)

Utilizator iarbaCrestez Paul iarba Data 15 martie 2012 13:53:07
Problema Trapez Scor 60
Compilator c Status done
Runda Arhiva de probleme Marime 0.89 kb
#include <stdio.h>
double pan[1000002];
double a[1002][2];
long i,j,n,m;
FILE *f,*g;

void qsort(long l,long r)
{
long ii,jj;
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()
{
	f=fopen("trapez.in","r");
	g=fopen("trapez.out","w");
	fscanf(f,"%ld",&n);
	for(i=1;i<=n;i++){fscanf(f,"%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])/(a[i][1]-a[j][1]);
	                       }
		else{pan[++m]=2000000002;}
										 }
					 }
qsort(1,m);
n=0;
pan[m+1]=-2000000002;
for(i=1;i<=m;i++){
	if(pan[i]==pan[i+1]){i++;n++;}
                 }
fprintf(g,"%ld",n);
fclose(f);fclose(g);
return 0;
}