Cod sursa(job #2618861)

Utilizator DenisaCantuCantu Denisa DenisaCantu Data 26 mai 2020 14:09:39
Problema Trapez Scor 30
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.95 kb
#include <bits/stdc++.h>
using namespace std;
ifstream f("trapez.in");
ofstream g("trapez.out");
struct punct
{
    double x, y;
} v[1000005];
double p[10001];
int n;
int m = INT_MAX;
int main()
{
    f >> n;
    for( int i = 1; i <= n; i++)
        f >> v[i].x >> v[i].y;
    int nr = 0;
    for( int i = 1; i <n; i++)
        for( int j = i+1; j <= n; j++)
            if(i != j)
            {
                nr++;
                if(v[i].x == v[j].x)
                    p[nr] = m;
                else
                    p[nr] = (double)(v[j].y - v[i].y)  / (double) (v[j].x - v[i].x);
            }
    sort(p + 1, p + nr + 1);


    int k = 1, nr_tr = 0;
    for( int i = 2; i <= nr; i++)
    {

        if(p[i] == p[i-1])
            k++;
        else
        {
            nr_tr = nr_tr + (k * (k - 1) / 2);
            k = 1;
        }

    }
    nr_tr = nr_tr + (k * (k - 1) / 2);
    g << nr_tr;
    return 0;
}