Cod sursa(job #2449045)

Utilizator FrostfireMagirescu Tudor Frostfire Data 17 august 2019 23:54:15
Problema Trapez Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.97 kb
#include <fstream>
#include <iostream>
#include <vector>
#include <algorithm>
#define inf 2000000100

using namespace std;

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

int n, nr, sol;
pair <double, double> v[1010];
vector <double> a;

double calcPanta(int p1, int p2)
{
    if(v[p1].first == v[p2].first) return inf;
    return ((v[p2].second - v[p1].second) / (v[p2].first - v[p1].first));
}

int main()
{
    f >> n;
    for(int i=1; i<=n; i++) f >> v[i].first >> v[i].second;
    for(int i=1; i<n; i++)
        for(int j=i+1; j<=n; j++) a.push_back(calcPanta(i, j));
    sort(a.begin(), a.end());
    nr = 1;
    //cout << a[0] << ' ';
    for(int i=1; i<a.size(); i++)
        {   //cout << a[i] << ' ';
            if(a[i] == a[i-1]) nr++;
            else
                {   sol = sol + (nr * (nr - 1)) / 2;
                    nr = 1;
                }
        }
    sol = sol + (nr * (nr - 1)) / 2;
    g << sol << '\n';
    return 0;
}