Pagini recente » Cod sursa (job #104279) | Cod sursa (job #632567) | Cod sursa (job #378770) | Cod sursa (job #2797222) | Cod sursa (job #775994)
Cod sursa(job #775994)
#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;
}