Pagini recente » Cod sursa (job #1057020) | Cod sursa (job #1421362) | Cod sursa (job #87652) | Cod sursa (job #1447797) | Cod sursa (job #927963)
Cod sursa(job #927963)
#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;
scanf("%d",&n);
for(i=1;i<=n;i++)
scanf("%d%d",&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;
printf("%d",ans);
return 0;
}