Cod sursa(job #260945)

Utilizator hasegandaniHasegan Daniel hasegandani Data 17 februarie 2009 19:17:52
Problema Trapez Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.99 kb
#include<stdio.h>

#define nmax 10

int x[nmax],y[nmax];

struct panta
{
    int n,p;
} m[nmax*(nmax-1)];

void sort(int st,int dr)
{
    int poz=st-1;
    for(int i=st;i<=dr;++i)
        if (m[dr].p*m[i].n<=m[dr].n*m[i].p)
            {
                panta aux=m[i];
                m[i]=m[++poz];
                m[poz]=aux;
            }
    if (st<poz-1)
        sort(st,poz-1);
    if (poz+1<dr)
        sort(poz+1,dr);
}

int main()
{
    int n,k=0,cont=0;
    freopen("trapez.in","r",stdin);
    freopen("trapez.out","w",stdout);
    scanf("%d",&n);
    for(int i=1;i<=n;++i)
        {
            scanf("%d%d",&x[i],&y[i]);
            for(int j=i-1;j;j--)
                {
                m[++k].n=y[i]-y[j];
                m[k].p=x[i]-x[j];
                }
        }
    int n2=((n-1)*n)/2;
    sort(1,n2);
    for(int i=1;i<=n2;++i)
        for(int j=i+1;j<=n2 && m[i].n*m[j].p==m[i].p*m[j].n;++j , ++cont);
    printf("%d\n",cont);
    return 0;
}