Cod sursa(job #342851)

Utilizator eudanipEugenie Daniel Posdarascu eudanip Data 23 august 2009 21:42:10
Problema Trapez Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.83 kb
#include<stdio.h>
int n;
long i,v[1001][2],j,p1,p2,c,f,z,u,x[1000001][3],s;
long cmmdc (long a,long b)
{
long aux;
while(a%b)
{aux=a%b;
a=b;
b=aux;
}
return b;
}
int main ()
{
freopen("trapez.in","r",stdin);
freopen("trapez.out","w",stdout);
scanf("%d",&n);
for(i=1;i<=n;i++)
{
scanf("%ld%ld",&v[i][0],&v[i][1]);
for(j=i-1;j>=1;j--)
{
  p1=v[i][0]-v[j][0];
  if(p1<0)
	p1=p1*-1;
  p2=v[i][1]-v[j][1];
  if(p2<0)
	p2=p2*-1;
if(p1!=0 && p2!=0)
   {
	c=cmmdc(p1,p2);
	 p1=p1/c;
	p2=p2/c;
   }
f=0;
for(z=1;z<=u;z++)
  {if(x[z][1]==p1 && x[z][2]==p2)
   {
	  x[z][0]++;f=1;break;
   }
  }
if(!f)
{
 x[++u][1]=p1;
 x[u][2]=p2;
x[u][0]=1;
}

}//for 2
}//for 1
for(i=1;i<=u;i++)
{
if(x[i][0]%2==1)
   s=s+(x[i][0]-1)/2*x[i][0];
else
   s=s+x[i][0]/2*(x[i][0]-1);
}
printf("%ld",s);
return 0;
}