Pagini recente » Cod sursa (job #1327329) | Cod sursa (job #851133) | Cod sursa (job #3189087) | Cod sursa (job #1037397) | Cod sursa (job #1337183)
#include <iostream>
#include <fstream>
#include <algorithm>
#define eps 0.0001
#define oo 1000000000
using namespace std;
ifstream fin("trapez.in");
ofstream fout("trapez.out");
int n;
double m[1000005];
struct point
{
int x,y;
};
point p[1005];
void read()
{
fin>>n;
int i;
for(i=1;i<=n;i++)
fin>>p[i].x>>p[i].y;
}
double panta (point p1, point p2)
{
int a=p2.y-p1.y;
int b=p2.x-p1.x;
if(b==0)
return oo;
else
return (double)((double)a/(double)b);
}
void solve()
{
int i,j,k=0,sol=0;
for(i=1;i<n;i++)
for(j=i+1;j<=n;j++)
m[++k]=panta(p[i],p[j]);
sort(m+1,m+k+1);
int trapez=0;
for(i=1;i<k;i++)
if(m[i+1]-m[i]<eps)
{
trapez++;
}
else
{//cout<<trapez;
sol+=(trapez*(trapez-1))/2;
trapez=0;
}
fout<<sol;
}
int main()
{
read();
solve();
return 0;
}