Cod sursa(job #1335443)

Utilizator patrutoiuandreipatrutoiu andrei patrutoiuandrei Data 5 februarie 2015 15:27:35
Problema Trapez Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.79 kb
#include<stdio.h>
#include<fstream>
#include<algorithm>
#define INF 666013
#define eps 0.0000000001
using namespace std;
ifstream fin("trapez.in");
ofstream fout("trapez.out");
int sol,l,nr,i,n,j;
struct punct
{
    int x, y;
};
punct a[1004];
double v[1000*1000+4];
int main()
{
    fin>>n;
    for(i=1;i<=n;i++)
        fin>>a[i].x>>a[i].y;
    for(i=1;i<=n;i++)
        for(j=i+1;j<=n;j++)
        {

            nr++;
            if(a[i].y==a[j].y)
                v[nr]=INF;
            else
            v[nr]=(double)(a[j].x-a[i].x)*1.0/(a[j].y-a[i].y);
        }
    sort(v+1,v+1+nr);
    l=1;
    for(int i=2;i<=nr;i++)
    {
        if(v[i]==v[i-1])
            l++;
        else{

            sol+=l*(l-1)/2;
            l=1;
        }

    }
    sol+=l*(l-1)/2;
    fout<<sol;
    return 0;


}