Pagini recente » Arhiva de probleme | Cod sursa (job #505404) | Cod sursa (job #1455428) | Cod sursa (job #1865290) | Cod sursa (job #927953)
Cod sursa(job #927953)
#include <iostream>
#include <cstdio>
#include <cmath>
#include <algorithm>
using namespace std;
double f[499510];
struct point
{
int x,y;
}v[1010];
double panta(point p1,point p2)
{
if(p2.x==p1.x)
return 1<<30;
return ((double)p2.y-p1.y)/(p2.x-p1.x);
}
int main()
{
freopen("trapez.in","r",stdin);
freopen("trapez.out","w",stdout);
int i,n,c=0,nr=0,ans=0;
cin>>n;
for(i=1;i<=n;i++)
cin>>v[i].x>>v[i].y;
for(i=1;i<=n;i++)
for(int j=i+1;j<=n;j++)
f[++c]=panta(v[i],v[j]);
sort(f+1,f+c+1);
for(i=1;i<c;i++)
if(f[i]==f[i+1])
nr++;
else
ans += (nr * (nr - 1) / 2), nr = 1;
cout<<ans;
return 0;
}