Cod sursa(job #254534)

Utilizator firewizardLucian Dobre firewizard Data 7 februarie 2009 12:46:52
Problema Trapez Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.69 kb
#include <stdio.h>
#include <algorithm>
#define FOR(i,s,d) for(i=(s);i<=(d);++i)
using namespace std;
struct coord{long x;long y;};
coord v[10000];
long n,i,c,j,l,nrt;
double pn[1000],nrc=-1;
int main()
{
    freopen ("trapez.in","r",stdin);
    freopen ("trapez.out","w",stdout);
    scanf("%ld",&n);
    FOR (i,1,n)
        scanf ("%ld %ld",&v[i].x,&v[i].y);
    FOR (i,1,n-1)
        FOR (j,i+1,n){
            pn[++l]=(double(v[i].y-v[j].y)/(v[i].x-v[j].x));
            if(pn[l]<0)pn[l]*=(-1);
            }
    sort(pn+1,pn+l+1);
    FOR (i,1,l){
        if(nrc!=pn[i]&&i!=1){nrc=pn[i];nrt+=(c*(c-1))/2;c=1;}
        else c++;
        }
    printf("%ld",nrt);
    return 0;
}