Cod sursa(job #1331503)

Utilizator antanaAntonia Boca antana Data 31 ianuarie 2015 18:53:50
Problema Trapez Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.95 kb
#include <iostream>
#include<cstdio>
#include<algorithm>
using namespace std;
float pante[500001];
struct puncte{int xx, yy;};
puncte v[1001];
int main()
{
    freopen("trapez.in","r",stdin);
    freopen("trapez.out","w",stdout);
    int n,x,y,i,perpen,trapez,k,j,secv;
    scanf("%d",&n);
    for(i=1;i<=n;i++)
        scanf("%d%d",&v[i].xx,&v[i].yy);
    k=0;
    perpen=0;
    for(i=1;i<=n-1;i++)
    {
        for(j=i+1;j<=n;j++)
        {
           if(v[i].xx-v[j].xx==0)
                perpen++;
           else
               pante[++k]=(float)(v[i].yy-v[j].yy)/(v[i].xx-v[j].xx);
        }
    }
    trapez=(perpen-1)*perpen/2;
    sort(pante+1,pante+k+1);
    secv=1;
    for(i=2;i<=k;i++)
    {
        if(pante[i]==pante[i-1])
            secv++;
        else
        {
            trapez=trapez+(secv-1)*secv/2;
            secv=1;
        }
    }
    trapez+=(secv-1)*secv/2;
    printf("%d",trapez);
    return 0;
}