Pagini recente » Cod sursa (job #547307) | Cod sursa (job #2738275) | Cod sursa (job #312337) | Cod sursa (job #2798277) | Cod sursa (job #1397132)
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <climits>
#define eps 1e-12
using namespace std;
int nr,nr1,i,j,n,sol;
double p[1000000];
struct punct
{
int x;
int y;
};
punct a[1001];
int main()
{
freopen("trapez.in","r",stdin);
freopen("trapez.out","w",stdout);
scanf("%d\n",&n);
for (i=1; i<=n; i++) scanf("%d %d",&a[i].x, &a[i].y);
nr=nr1=0;
for (i=1; i<n; i++) for (j=i+1; j<=n; j++)
{
if ((a[j].x-a[i].x)!=0)
p[++nr]=((1.0*a[j].y)-a[i].y)/((1.0*a[j].x)-a[i].x);
else p[++nr] = INT_MAX;
}
sort(p+1,p+nr+1);
for (i=2; i<=nr; i++) if (p[i] - p[i-1] <= eps) nr1++;
else
{
sol += nr1 * (nr1 - 1) / 2;
nr1 = 1;
}
printf("%d",sol);
return 0;
}