Pagini recente » Cod sursa (job #183104) | Cod sursa (job #327468) | Cod sursa (job #784133) | Cod sursa (job #2769398) | Cod sursa (job #286112)
Cod sursa(job #286112)
#include <cstdio>
#include <math.h>
#include <algorithm>
using namespace std;
#define Nmax 1024
int n, x[Nmax], y[Nmax], nr;
double a[Nmax*Nmax];
double abs(double x)
{
if (x>0) return x;
return -x;
}
int main()
{
freopen("trapez.in","r",stdin);
freopen("trapez.out","w",stdout);
scanf("%d", &n);
for (int i=1;i<=n;++i)
{
scanf("%d%d", x+i,y+i);
for (int j=1;j<i;++j)
a[++nr] = atan2(x[j]-x[i],y[j]-y[i]);
}
sort(a+1,a+nr+1);
a[0] = 666.6;
a[++nr] = 666.6;
int tmp=1;
long long ret = 0;
for (int i=1;i<=nr;++i)
{
if (abs(a[i]-a[i-1])>1e-17)
{
if (tmp > 1)
ret += ((long long)tmp*((long long)tmp-1))/2;
tmp = 1;
}
else
++tmp;
}
printf("%lld\n", ret);
return 0;
}