Cod sursa(job #328271)

Utilizator GavrilaVladGavrila Vlad GavrilaVlad Data 1 iulie 2009 14:37:28
Problema Trapez Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.88 kb
#include <stdio.h>
#include <algorithm>

#define maxn 1010
#define inf 2147000000

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]=(y[i]-y[j])/(x[i]-x[j]);
            }
            else
            {
                p[++l]=inf;
            }
        }
    }
    sort(p+1, p+n+1);
    for(i=1; i<=l; i++)
    {
        gr=1;
        while(p[i]==p[i+1] && i<n)
        {
            gr++;
            i++;
        }
        sol+=gr*(gr-1)/2;
    }
    printf("%d\n", sol);
    return 0;
}