Cod sursa(job #2596940)

Utilizator alexsandulescuSandulescu Alexandru alexsandulescu Data 10 aprilie 2020 18:35:25
Problema Trapez Scor 100
Compilator cpp-64 Status done
Runda cex_ph_3 Marime 0.8 kb
#include <fstream>
#include <algorithm>
#include <vector>

#define x first
#define y second

using namespace std;

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

int N, sol;
vector<double> panta;
pair<double, double> a[1003];

int main() {
  f >> N;
  for (int i = 1; i <= N; i++) f >> a[i].x >> a[i].y;

  for (int i = 1; i <= N; i++) {
    for (int j = i + 1; j <= N; j++) {
      panta.push_back(-1);
      if (a[i].x != a[j].x) {
        panta.back() = (a[i].y - a[j].y) / (a[i].x - a[j].x);
      }
    }
  }

  sort(panta.begin(), panta.end());

  int i;
  for (i = 0; i < panta.size() && panta[i] == -1; i++);
  int lg = 0;
  for (i++; i < panta.size(); i++) {
    if (panta[i] != panta[i - 1]) {
      sol += lg * (lg + 1) / 2;
      lg = 0;
    } else
      lg++;
  }

  g << sol << "\n";
  return 0;
}