Cod sursa(job #1410827)

Utilizator akaprosAna Kapros akapros Data 31 martie 2015 12:06:53
Problema Trapez Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.75 kb
#include<cstdio>
#include<algorithm>
#include<cstring>
#define Nmax 1005
using namespace std;
int n,i,j,k,nr,sol,m;
struct nod
{
    long long x;
    long long y;
}v[Nmax],w[Nmax*Nmax];
int cmp(const nod a,const nod b)
{
    return a.x*b.y*1LL<=a.y*b.x*1LL;
}
int main()
{
    freopen("trapez.in","r",stdin);
    freopen("trapez.out","w",stdout);
    scanf("%d",&n);
    for (i=1;i<=n;i++)
    scanf("%lld %lld",&v[i].x,&v[i].y);
    for (i=1;i<n;i++)
    for (j=i+1;j<=n;j++)
    {
        ++nr;
        w[nr].x=v[i].y-v[j].y;
        w[nr].y=v[j].x-v[i].x;
    }
    sort(w+1,w+nr+1,cmp);
    for (i=2;i<=nr;i++)
    if (w[i].x*w[i-1].y==w[i].y*w[i-1].x) m++;
    else {sol=sol+(m*(m+1)/2); m=0;}
    printf("%d",sol);
    return 0;
}