Pagini recente » Cod sursa (job #1771177) | Cod sursa (job #3151669) | Cod sursa (job #2080400) | Cod sursa (job #2377217) | Cod sursa (job #1802833)
#include <stdio.h>
#include <algorithm>
#define d 1001
#define m 2000000001
using namespace std;
struct s{int x; int y;};
int i, j, n, k, q;
long long np;
double p[d*d];
s v[d];
int main()
{
freopen("trapez.in", "r", stdin);
freopen("trapez.out", "w", stdout);
scanf("%d", &n);
for(i = 0; i < n; i++)
scanf("%d %d", &v[i].x, &v[i].y);
for(i = 0; i < n-1; i++)
for(j = i + 1; j < n; j++)
{
if(v[i].y == v[j].y) p[k++] = m;
else p[k++] = (double)(v[i].x - v[j].x) / (v[i].y - v[j].y);
}
stable_sort(p, p + k);
for(i = 0; i < k; i++)
{
q = 1;
while(i < k-1 && p[i] == p[i+1])
{
q++;
i++;
}
np += (long long) q * (q - 1) / 2;
}
printf("%lld", np);
return 0;
}