Cod sursa(job #2081929)

Utilizator calin9819Costea Calin calin9819 Data 5 decembrie 2017 14:55:39
Problema Trapez Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.99 kb
#include <iostream>
#include <fstream>
#include <algorithm>
using namespace std;

ifstream f("trapez.in");
ofstream g("trapez.out");



int N, l[1001], c[1001], r;
double drepte[1000001];
const double e = 0.0000000000001;

int main()
{
    f >> N;
    int nrD = 0;
    for (int i = 1; i <= N; i++)
        f >> l[i] >> c[i];
    for (int i = 1; i <= N; i++)
        for (int j = 1; j < i; j++) {;
            nrD++;
            if (l[j] == l[i]) drepte[nrD] = -1; else
            drepte[nrD] = (double)(c[j] - c[i]) / (l[j] - l[i]);
        }
    sort(drepte+1, drepte+nrD+1);

    double precedent = drepte[1];
    int aparitii = 1;
    for (int i = 2; i <= nrD; i++) {
        if ((drepte[i] - precedent <= e && drepte[i] >= precedent) || (precedent - drepte[i] <= e && drepte[i] <= precedent)) {
            r += aparitii;
            aparitii++;
        } else {
            precedent = drepte[i];
            aparitii = 1;
        }
    }
    g << r;
    return 0;
}