Pagini recente » Cod sursa (job #597092) | Istoria paginii runda/1112 | Cod sursa (job #357122) | Cod sursa (job #1825680) | Cod sursa (job #775993)
Cod sursa(job #775993)
#include<iostream>
#include<algorithm>
#include<fstream>
using namespace std;
struct punct{double x,y;};
punct P[1012];
double a[1010*1010/2],x,y;
int main(void)
{
fstream f,g;
f.open("trapez.in",ios::in);
g.open("trapez.out",ios::out);
int i,n,N=0,paraleloy=0,q=0,rez=0,j;
f>>n;
for (i=1;i<=n;i++)
f>>P[i].x>>P[i].y;
for (i=1;i<=n;i++)
for (j=i+1;j<=n;j++)
{
x=P[j].x-P[i].x;
y=P[j].y-P[i].y;
if (y==0)
paraleloy++;
else
a[++N]=x/y;
}
sort(a+1,a+1+N);
for (i=1;i<N;i++)
if (a[i+1]==a[i])
q++;
else
{
rez=rez+q*(q-1)/2;
q=0;
}
rez=rez+q*(q+1)/2;
rez=rez+paraleloy*(paraleloy-1)/2;
g<<rez;
}