Cod sursa(job #1541768)

Utilizator bciobanuBogdan Ciobanu bciobanu Data 4 decembrie 2015 15:47:32
Problema Triang Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.78 kb
#include <cstdio>
#include <set>
#include <cmath>

using std::multiset;

const int MAX_N = 1500;
const double EPS = 1e4;

struct Point {
  double x, y;
};

Point v[MAX_N];
multiset <double> dist;

int main(void) {
  freopen("triang.in", "r", stdin);
  freopen("triang.out", "w", stdout);
  int N, q;
  double d;

  scanf("%d", &N);
  for (int i = 0; i < N; i++) {
    scanf("%lf%lf", &v[i].x, &v[i].y);
  }
  fclose(stdin);
  q = 0;
  for (int i = 0; i < N; i++) {
    dist.clear();
    for (int j = i + 1; j < N; j++) {
      d = sqrt((v[i].x - v[j].x) * (v[i].x - v[j].x) + (v[i].y - v[j].y) * (v[i].y - v[j].y));
      d = round(d * EPS) / EPS;
      q += dist.count(d);
      dist.insert(d);
    }
  }
  printf("%d\n", q);
  fclose(stdout);
  return 0;
}