Pagini recente » Cod sursa (job #3198650) | Cod sursa (job #1105568) | Cod sursa (job #100046) | Cod sursa (job #752167) | Cod sursa (job #1330159)
#include <cstdio>
#include <algorithm>
#include <cmath>
using namespace std;
#define NMAX 1007
#define F first
#define S second
#define SQR(x) ((x)*(x))
#define eps (0.00001)
long long to;
pair < int , int > po[NMAX];
int i,j,N,cu;
double ip;
double Sin[NMAX*NMAX];
bool egal(double x,double y)
{
if (x>y) swap(x,y);
return (y-x<eps);
}
int main()
{
freopen("trapez.in","r",stdin);
freopen("trapez.out","w",stdout);
scanf("%d",&N);
for (i=1;i<=N;++i)
scanf("%d%d",&po[i].F,&po[i].S);
for (i=1;i<=N;++i)
for (j=i+1;j<=N;++j)
{
ip=sqrt((double)(SQR(po[i].F-po[j].F)+SQR(po[i].S-po[j].S)));
Sin[(int)++Sin[0]]=(double)(po[i].S-po[j].S)/ip;
}
sort(Sin+1,Sin+(int)Sin[0]+1);
for (i=cu=1;i<=(int)Sin[0];++i)
{
if (egal(Sin[i],Sin[i-1])) ++cu;
else
{
to+=(long long)cu*(cu-1)/2;
cu=1;
}
}
printf("%lld\n",to);
return 0;
}