Cod sursa(job #1996164)

Utilizator FlorinHajaFlorin Gabriel Haja FlorinHaja Data 30 iunie 2017 13:35:51
Problema Trapez Scor 50
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.94 kb
#include <fstream>
#include <iostream>
#include <algorithm>

using namespace std;

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

int n, i, j, x, y, N, nr;
double pnt;
struct punct {
    int x, y;
}v[1005];
double vai[1000005];
long long sol;

int main() {
    f >> n;
    for (i = 1; i <= n; i++) {
        f >> x >> y;
        v[i] = {x,y};
    }
    for (i = 1; i <= n; i++) {
        for (j = i+1; j <= n; j++) {
            if (v[j].x == v[i].x) {
                if (v[j].y > v[i].y)
                    pnt = 2e9+2;
                else pnt = -2e9-2;
            }
            else pnt = (double)(v[j].y-v[i].y)/(v[j].x-v[i].x);
            vai[++N] = pnt;
        }
    }
    sort(vai+1, vai+N+1);
    for (i = nr = 1; i <= N; i++) {
        cout << vai[i] << ' ';
        if (vai[i]==vai[i-1])
            nr++;
        else
            sol += nr*(nr-1), nr = 1;
    }
    g << sol/2;
    return 0;
}