Pagini recente » Cod sursa (job #566200) | Cod sursa (job #3241318) | Cod sursa (job #2731090) | Cod sursa (job #1402238) | Cod sursa (job #283145)
Cod sursa(job #283145)
#include <stdio.h>
#include <math.h>
#include <algorithm>
using namespace std;
double alfa[1000100];
int x[1024],y[1024], n;
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);
int cnt = 0;
for (int i=1;i<=n;++i)
for (int j=i+1;j<n;++j)
alfa[++cnt] = atan2(abs(y[i]-y[j]),abs(x[i]-x[j]));
sort(alfa+1,alfa+cnt+1);
int tmp=1;
long long ret=0;
alfa[cnt+1] = 666;
for (int i=2;i<=cnt+1;++i)
if (abs(alfa[i]-alfa[i-1]) > (1e-15))
ret += tmp*(tmp-1)/2,
tmp = 0;
else
++tmp;
printf("%lld\n", ret);
return 0;
}