Cod sursa(job #2932782)

Utilizator euyoTukanul euyo Data 3 noiembrie 2022 22:42:05
Problema Trapez Scor 50
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.72 kb
#include <bits/stdc++.h>
#define x first
#define y second

using namespace std;

using pii = pair<int, int>;
using ll = long long;

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

const int DIM = 1005;

pii v[DIM];
double s[DIM][DIM];
unordered_map<double, int> M; 

int main() {
  int n;
  
  fin >> n;
  for ( int i = 0; i < n; ++i ) {
	fin >> v[i].x >> v[i].y;
	for ( int j = 0; j < i; ++j ) {
      s[i][j] = atan2(v[i].x - v[j].x, v[i].y - v[j].y);
	  double t = atan2(-v[i].x + v[j].x, -v[i].y + v[j].y);
	  ++M[s[i][j]];
	  ++M[t];
	}
  }
  int res = 0;
  for ( int i = 0; i < n; ++i ) {
    for ( int j = 0; j < i; ++j ) {
	  res += M[s[i][j]] - 1;
	}
  }
  fout << res / 2;
  fin.close();
  fout.close();
  return 0;
}