Cod sursa(job #2292845)

Utilizator miruna1224Floroiu Miruna miruna1224 Data 30 noiembrie 2018 02:22:19
Problema Trapez Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.9 kb
#include <iostream>
#include <fstream>
#include <algorithm>

using namespace std;

struct Punct
{
    float x, y;
};

int main()
{
    int n, i, j, k, sol, x;
    float *v;
    Punct *p;

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

    in >> n;
    p = new Punct [n+1];
    for (i = 0; i < n; i ++)
        in >> p[i].x >> p[i].y;

    v = new float [n*(n+1)/2 + 2];
    k = 0;
    for (i = 0; i < n-1; i++)
        for(j = 0; j < n ; j ++)
            v[k++] = (p[j].x - p[i].x) / (p[j].y- p[i].y);

    sort (v, v+k);

    sol = 0;

    for ( i = 0; i < k; i++)
    {
        x = 1;
        while (i < k && v[i] == v[i+1])
        {
            i++;
            x++;
        }
        if ( x % 2 == 0 )
            sol += (x/2)*(x-1);
        else sol += x*((x-1)/2);
    }

    out << sol;

    in.close();
    out.close();

    return 0;
}