Cod sursa(job #328275)

Utilizator GavrilaVladGavrila Vlad GavrilaVlad Data 1 iulie 2009 14:44:33
Problema Trapez Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.91 kb
#include <stdio.h>
#include <algorithm>

#define maxn 1010
#define inf 2147000000
#define eps 0.01
using namespace std;

long n, i, j, k, l, x[maxn], y[maxn], sol, gr;
double p[maxn*maxn];

int main()
{
    freopen("trapez.in", "r", stdin);
    freopen("trapez.out", "w", stdout);
    scanf("%d", &n);
    for(i=1; i<=n; i++)
    {
        scanf("%d%d", &x[i], &y[i]);
    }
    for(i=1; i<n; i++)
    {
        for(j=i+1; j<=n; j++)
        {
            if(x[i]!=x[j])
            {
                p[++l]=(double)(y[i]-y[j])/(x[i]-x[j]);
            }
            else
            {
                p[++l]=inf;
            }
        }
    }
    sort(p+1, p+l+1);
    for(i=1; i<=l; i++)
    {
        gr=1;
        while(p[i+1]-p[i]<=eps && i<l)
        {
            gr++;
            i++;
        }
        sol+=gr*(gr-1)/2;
    }
    printf("%d\n", sol);
    return 0;
}