Cod sursa(job #2617965)

Utilizator petrucioinicaPetru Cioinica petrucioinica Data 23 mai 2020 13:37:41
Problema Trapez Scor 40
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.86 kb
#include <iostream>
#include <fstream>
#include <iterator>
#include <unordered_map>


using namespace std;

struct punct
{
    float x;
    float y;
};

unordered_map <float, int> aparitiePante;

float panta(punct a, punct b)
{
    return ((b.y-a.y)/(b.x-a.x));
}

int main()
{   
    ifstream f("trapez.in");
    ofstream g("trapez.out");
    int n,i = 0;
    punct v[1000];
    f>>n;
    while(!f.eof())
    {
        f>>v[i].x;
        f>>v[i].y;
        i++;
    }
    for(i = 0; i < n -1; i++)
        for(int j = i + 1; j < n; j++)
        {
            aparitiePante[panta(v[i],v[j])]++;
        }
    int trapezPosibil = 0;
    for(const auto &x : aparitiePante)
    {
        cout<<x.first<<", "<<x.second<<endl;
        if(x.second > 1)
            trapezPosibil += x.second*(x.second-1)/2;
    }
    g<<trapezPosibil;
}