Cod sursa(job #1602868)

Utilizator badea_adi1999Badea Adrian Catalin badea_adi1999 Data 16 februarie 2016 22:57:59
Problema Trapez Scor 50
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.83 kb
#include <bits/stdc++.h>
#define inf 2000000005
#define e 0.000000001
#define nmax 1035
using namespace std;
int n,m,k,sol;
int nr;
double s[nmax*nmax/2];

struct nod{
    int x,y;
} v[nmax];


int main()
{
    int i,j;
    freopen("trapez.in","r",stdin);
    freopen("trapez.out","w",stdout);
    scanf("%d",&n);
    for (i=1;i<=n;i++) {
        scanf("%d %d",&v[i].x,&v[i].y);
        for (j=i-1;j>=1;j--)
            if (v[i].x-v[j].x) {
                nr++;
                s[nr]=(double)(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 (abs(s[i] - s[i - 1]) <= e)
            m++;
        else {
            sol=sol+(m*(m + 1)/2);
            m=0;
        }
    printf("%d",sol);
    return 0;
}