Cod sursa(job #2843328)

Utilizator iraresmihaiiordache rares mihai iraresmihai Data 2 februarie 2022 12:29:48
Problema Trapez Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.84 kb
#include <iostream>
#include <fstream>
#include <algorithm>

using namespace std;

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

#define MAXN 1000
#define STEEP 2e12 + 1

double a[MAXN * MAXN];
int sizeA;

double m[MAXN][2];

int main() {
  int n, i, i2, nr;
  long long ans;

  fin >> n;

  sizeA = 0;
  for ( i = 0; i < n; i++ ) {
    fin >> m[i][0] >> m[i][1];
    for ( i2 = 0; i2 < i; i2++ ) {
      if ( m[i][0] != m[i2][0] )
        a[sizeA] = (m[i][1] - m[i2][1]) / (m[i][0] - m[i2][0]);
      else
        a[sizeA] = STEEP;
      sizeA++;
    }
  }

  sort(a, a + sizeA);

  ans = 0;
  for ( i = 1; i < sizeA; i++ ) {
    nr = 1;
    while ( a[i - 1] == a[i] && i < sizeA ) {
      nr++;
      i++;
    }
    ans = ans + (long long) (nr - 1) * nr / 2;
  }

  fout << ans;

  return 0;
}