Cod sursa(job #254543)

Utilizator firewizardLucian Dobre firewizard Data 7 februarie 2009 12:52:51
Problema Trapez Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.7 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[10005];
long n,i,c,j,l,nrt;
double pn[1000000],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);
    FOR (i,1,l){
        if(nrc!=pn[i]&&i!=1){nrc=pn[i];nrt+=(c*(c-1))/2;c=1;}
        else c++;
        }
    printf("%ld\n",nrt);
    return 0;
}