Cod sursa(job #2969437)

Utilizator pmih12Petrache Mihnea pmih12 Data 23 ianuarie 2023 00:51:43
Problema Trapez Scor 50
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.98 kb
#include <bits/stdc++.h>
#define NMax 1001
using namespace std;

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

int x[NMax], y[NMax], N, c;
vector<double> Pante;

int Comb(int n) {
    return n*(n-1)/2;
}

void Read() {
    in >> N;
    for (int i = 0; i < N; ++i)
        in >> x[i] >> y[i];
}

void Solve() {
    double m;
    for (int i = 0; i < N-1; ++i)
        for (int j = i+1; j < N; ++j) {
            m = (double)(y[j]-y[i])/(x[j]-x[i]);
            Pante.push_back(m);
        }

    int lg = Pante.size();
    sort(Pante.begin(), Pante.end());

    for (int i = 0; i < lg; ++i)
        cerr << Pante[i] << ' ';

    int aux = 1, contor = 0;
    for (int i = 1; i < lg; ++i) {
        if (Pante[i] == Pante[i-1])
            aux++;
        else {
            contor += Comb(aux);
            aux = 1;
        }
    } contor += Comb(aux);

    out << contor << '\n';
}

int main() {
    ios_base::sync_with_stdio(0);
    cin.tie(nullptr);

    Read();
    Solve();

    return 0;
}