Cod sursa(job #2292849)

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

using namespace std;

const int M = 1000010;

struct Punct
{
    double x, y;
};

int main()
{
    int n, i, j, k, sol, x, N;
    //double *v;
    double v[M];
    // Punct *p;
    Punct p[1010];

    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;

//    N = n*n;
//    v = new double [N+1];
    k = 0;
    for (i = 0; i < n; i++)
        for(j = 0; j < n ; j ++)
            v[k++] = (double)(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();
//
//    delete p;
//    delete v;

    return 0;
}