Cod sursa(job #2969445)

Utilizator pmih12Petrache Mihnea pmih12 Data 23 ianuarie 2023 01:11:16
Problema Trapez Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.93 kb
#include <bits/stdc++.h>
#define NMax 1000
#define NEDEF 10009
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) {
            if (x[j] == x[i]) m = NEDEF;
            else m = (double)(y[j]-y[i])*1/(x[j]-x[i]);
            Pante.push_back(m);
        }

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

    long long 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() {

    Read();
    Solve();

    return 0;
}