Pagini recente » Cod sursa (job #541113) | Cod sursa (job #351804) | Cod sursa (job #2756270) | Cod sursa (job #645391) | Cod sursa (job #2606222)
#include <cstdio>
#include <cmath>
#include <algorithm>
using namespace std;
const double eps=1.0e-14;
const double INF=2.0e+9;
struct POINT{
int x,y;
}v[1005];
double p[500000];
double panta(POINT P1,POINT P2)
{
if(P1.x==P2.x)
return INF;
else
return (1.0*P2.y-P1.y)/(1.0*P2.x-P1.x);
}
int main()
{
freopen("trapez.in","r",stdin);
freopen("trapez.out","w",stdout);
int n,i,j,m=0,cnt,trapeze=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(j=i+1;j<=n;j++)
{
p[++m]=panta(v[i],v[j]);
}
sort(p+1,p+m+1);
cnt=1;
for(i=1;i<m;i++)
{
if(fabs(p[i]-p[i-1])<eps)
{
cnt++;
continue;
}
else
{
if(cnt>1)
trapeze+=cnt*(cnt-1)/2;
cnt=1;
}
}
printf("%d\n",trapeze);
return 0;
}