Cod sursa(job #150922)

Utilizator bogdanhm999Casu-Pop Bogdan bogdanhm999 Data 7 martie 2008 16:59:10
Problema Trapez Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.75 kb
#include <stdio.h>
#include <algorithm>
#define inf 2147000000

using namespace std;

long n,i,j,x[1005],y[1005],a,b,q;
double v[500005];
long long rez,c;

int main(){
    freopen("trapez.in","r",stdin);
    freopen("trapez.out","w",stdout);
    
    scanf("%ld",&n);
    for (i=1;i<=n;i++)
        scanf("%ld %ld",&x[i],&y[i]);
    for (i=1;i<n;i++)
        for (j=i+1;j<=n;j++){
            q++;
            a=x[j]-x[i];
            b=y[j]-y[i];
            if (a!=0)
               v[q]=(double)b/a;
            else v[q]=inf;
        }
    sort(v+1,v+q+1);
    v[q+1]=-inf;
    for (i=1;i<=q;i++){
        c=1;
        while(v[i]==v[i+1]){i++;c++;}
        rez+=(long long)(c-1)*c/2;
    }
    printf("%lld\n",rez);

return 0;
}