Cod sursa(job #2843101)

Utilizator vladburacBurac Vlad vladburac Data 1 februarie 2022 23:13:35
Problema Trapez Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.78 kb
#include <iostream>
#include <fstream>
#include <algorithm>
#include <map>
using namespace std;
const int NMAX = 1000;

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

struct punct{
  int x;
  int y;
};
punct v[1000];
double pante[NMAX*NMAX];

int main() {
  int n, i, j, nr, s, trapeze;
  double p;
  fin >> n;
  for( i = 0; i < n; i++ )
    fin >> v[i].x >> v[i].y;
  nr = 0;
  for( i = 0; i < n; i++ ) {
    for( j = i + 1; j < n; j++ )
      pante[nr++] = (double)( v[j].y - v[i].y ) / ( v[j].x - v[i].x );
  }
  sort( pante, pante + nr );
  trapeze = 0;
  for( i = 0; i < nr; i+=0 ) {
    s = 0;
    p = pante[i];
    while( pante[i] == p ) {
      s++;
      i++;
    }
    trapeze += s * ( s - 1 ) / 2;
  }
  fout << trapeze;
  return 0;
}