Cod sursa(job #174977)

Utilizator Andreid91Ciocan Andrei Andreid91 Data 9 aprilie 2008 13:54:15
Problema Trapez Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.82 kb
#include<fstream.h>


struct puncte {
	      long x,y;
	      };

int paralele (long x1,long y1,long x2,long y2,long x3,long y3,long x4,long y4)
	{
	if ((double)(y2-y1)/(x2-x1)==(double)(y4-y3)/(x4-x3)) return 1;
	return 0;
	}

int main()
{
int n,i,j;
long k=0;
puncte a[1002],v[499502];
ifstream f("trapez.in");
f>>n;
for (i=1;i<=n;i++) f>>a[i].x>>a[i].y;f.close();
long nr1=0,nr2=0;
for (i=1;i<n;i++)
	for (j=i+1;j<=n;j++)
			{
			v[++k].x=i;
			v[k].y=j;
			if (a[j].x-a[i].x==0) {nr1++;k--;}
			if (a[j].y-a[i].y==0) {nr2++;k--;}
			}
long nr;nr=nr1*(nr1-1)/2+nr2*(nr2-1)/2;
for (i=1;i<k;i++)
	for (j=i+1;j<=k;j++)
		nr+=paralele(a[v[i].x].x,a[v[i].x].y,a[v[i].y].x,a[v[i].y].y,a[v[j].x].x,a[v[j].x].y,a[v[j].y].x,a[v[j].y].y);
ofstream g("trapez.out");
g<<nr;
g.close();f.close();
return 0;
}