Cod sursa(job #2617960)

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


using namespace std;

struct punct
{
    float x;
    float y;
};

map <float, int> aparitiePante;

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

int combinari(int x)
{   
    return x*(x-1)/2;
}

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 += combinari(x.second);
    }
    g<<trapezPosibil;
}