Cod sursa(job #2129852)

Utilizator patcasrarespatcas rares danut patcasrares Data 13 februarie 2018 10:24:25
Problema Trapez Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.85 kb
#include<fstream>
#include<iostream>
#include<cmath>
#include<algorithm>
#define DN 1005
#define eps 1e-18
#define x first
#define y second
using namespace std;
ifstream fin("trapez.in");
ofstream fout("trapez.out");
int n,nr,fr,rez;
pair<double,double>a[DN];
double f=3e9,r[DN*DN];
int main()
{
    fin>>n;
    for(int i=1;i<=n;i++)
        fin>>a[i].x>>a[i].y;
    for(int i=1;i<=n;i++)
        for(int j=i+1;j<=n;j++)
        {
            nr++;
            if(a[i].x==a[j].x)
                r[nr]=f;
            else
                r[nr]=(a[i].y-a[j].y)/(a[i].x-a[j].x);
        }
    sort(r+1,r+nr+1);
    for(int i=1;i<=nr;i++)
    {
        if(i==1)
            fr=1;
        else
            if(abs(r[i]-r[i-1])<eps)
                fr++;
            else
                fr=1;
        rez+=fr-1;
    }
    fout<<rez;
}