Cod sursa(job #927953)

Utilizator addy01adrian dumitrache addy01 Data 26 martie 2013 09:59:08
Problema Trapez Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.75 kb
#include <iostream>
#include <cstdio>
#include <cmath>
#include <algorithm>

using namespace std;
double f[499510];
struct point
{
    int x,y;
}v[1010];

double panta(point p1,point p2)
{
    if(p2.x==p1.x)
        return 1<<30;
    return ((double)p2.y-p1.y)/(p2.x-p1.x);
}

int main()
{
    freopen("trapez.in","r",stdin);
    freopen("trapez.out","w",stdout);

    int i,n,c=0,nr=0,ans=0;
    cin>>n;
    for(i=1;i<=n;i++)
        cin>>v[i].x>>v[i].y;

    for(i=1;i<=n;i++)
        for(int j=i+1;j<=n;j++)
            f[++c]=panta(v[i],v[j]);

    sort(f+1,f+c+1);

    for(i=1;i<c;i++)
        if(f[i]==f[i+1])
            nr++;
      else
            ans += (nr * (nr - 1) / 2), nr = 1;

    cout<<ans;

  return 0;
}