Cod sursa(job #2691727)

Utilizator Razvan48Capatina Razvan Nicolae Razvan48 Data 29 decembrie 2020 18:41:05
Problema Trapez Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.86 kb
#include <fstream>
#include <algorithm>

using namespace std;

struct Punct
{
  double x;
  double y;
};

const int NMAX = 1000;

Punct punct[1 + NMAX];

double pante[1 + NMAX * NMAX];

int main()
{
  ifstream in("trapez.in");
  ofstream out("trapez.out");
  int n, nr = 0;

  in >> n;
  for (int i = 1; i <= n; i++)
  {
    in >> punct[i].x >> punct[i].y;

    for (int j = 1; j < i; ++j)
    {
      nr++;

      pante[nr] = (punct[i].y - punct[j].y) / (punct[i].x - punct[j].x);
    }
  }

  sort(pante + 1, pante + 1 + nr);

  int sol = 0;

  int lSecv = 1;

  for (int i = 2; i <= nr; i++)
  {
    if (pante[i] == pante[i - 1])
    {
      lSecv++;
    }
    else
    {
      sol += lSecv * (lSecv - 1) / 2;

      lSecv = 1;
    }
  }
  sol += lSecv * (lSecv - 1) / 2;

  out << sol << '\n';

  return 0;
}