Cod sursa(job #2735508)

Utilizator FischerMiguel Mini Fischer Data 2 aprilie 2021 14:52:20
Problema Patrate 3 Scor 55
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.82 kb
#include <bits/stdc++.h>
using namespace std;

int main() {
  freopen("patrate3.in", "r", stdin);
  freopen("patrate3.out", "w", stdout);
	int n;
	scanf("%d", &n);
	vector<pair<int, int>> p(n);
	auto get = []() {
		int x = 0, y = 0;
		scanf("%d.%d", &x, &y);
		bool sign = x >= 0;
		return (sign ? 1 : -1) * (abs(x) * 10000 + y);
	};
	for (int i = 0; i < n; ++i) {
		p[i].first = get();
		p[i].second = get();
	}
	vector<pair<int, int>> v;
	for (int i = 0; i < n; ++i) {
		for (int j = i + 1; j < n; ++j) {
			int x = p[i].first + p[j].first;
			int y = p[i].second + p[j].second;
			v.push_back({x, y});
		}
	}
	sort(v.begin(), v.end());
	long long ans = 0;
	for (int i = 0; i < v.size();) {
		int j = i;
		while (j < v.size() && v[i] == v[j]) j++;
		ans += (j - i) *1ll* (j - i - 1) / 2;
		i = j;
	}
	printf("%lld\n", ans);
	return 0;
}