Cod sursa(job #1571570)

Utilizator claudiuarseneClaudiu Arsene claudiuarsene Data 18 ianuarie 2016 10:26:25
Problema Trapez Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.84 kb
#include <bits/stdc++.h>
#define inf 2000000002
#define e 0.00000000001
#define Nmax 1002
using namespace std;
int n,i,j,k,nr,sol,m;
struct nod
{
    double x;
    double y;
} v[Nmax];
double s[500505];
int main()
{
    freopen("trapez.in","r",stdin);
    freopen("trapez.out","w",stdout);
    scanf("%d",&n);
    for (i=1; i<=n; ++i)
        scanf("%lf %lf",&v[i].x,&v[i].y);
    for (i=1; i<n; ++i)
        for (j=i+1; j<=n; ++j)
            if (v[i].x-v[j].x)
            {
                ++nr;
                s[nr] = (v[i].y-v[j].y) / (v[j].x-v[i].x);
            }else
            s[++ nr] = inf;
    sort(s+1,s+nr+1);
    for (i = 2; i <= nr; ++ i)
        if (fabs(s[i] - s[i - 1]) <= e)
            ++ m;
    else
    {
        sol=sol+(m*(m + 1)/2);
        m=0;
    }
    printf("%d",sol);
    return 0;
}