Cod sursa(job #2478053)

Utilizator andrei_laurentiuRadu Andrei-Laurentiu andrei_laurentiu Data 21 octombrie 2019 16:27:56
Problema Trapez Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.08 kb
#include <iostream>
#include <algorithm>
#include <vector>
#include <fstream>
using namespace std;
const double ind = 2.e+9;

vector <double> pnt;
struct point
{
  int x, y;
};
vector <point> v;
 double panta(point a, point b)
{
    if(b.x == a.x)
        return ind;
    return (b.y-a.y)/(double)(b.x-a.x);
}

int main()
{
    int n, i, j;
    double a, b;
    point temp;
    ifstream fin("trapez.in");
    ofstream fout("trapez.out");
    fin>>n;
    for(i = 1; i<= n; i++)
    {
        fin>>a>>b;
        temp.x =a;
        temp.y =b;
        v.push_back(temp);
    }
    for(i=0; i<v.size()-1; i++)
    {
        for(j=i+1; j<v.size(); j++)
        {
            double w = panta(v[i], v[j]);
            pnt.push_back(w);
        }
    }
    sort(pnt.begin(), pnt.end());
    int l = 1, trapez = 0;
    for(i=1; i<pnt.size(); i++)
    {
        if(pnt[i] == pnt[i-1])
            l++;
        else
        {
            trapez += l*(l-1)/2;
            l = 1;
        }
    }
    trapez += l*(l-1)/2;
    fout<<trapez;


    return 0;
}