Pagini recente » Cod sursa (job #99045) | Cod sursa (job #188660) | Cod sursa (job #3186160) | Cod sursa (job #1706635) | Cod sursa (job #1438198)
#include <iostream>
#include <fstream>
#include <map>
#include <vector>
#include <cmath>
#define x first
#define y second
std::ifstream in("patrate3.in");
std::ofstream out("patrate3.out");
std::map<std::pair<int, int>, bool> myMap;
std::vector<std::pair<int, int> > points;
int main() {
int N;
in >> N;
for (int i = 0; i < N; i++) {
double x, y;
in >> x >> y;
int x2 = (int) round(x * 10000);
int y2 = (int) round(y * 10000);
myMap[std::make_pair(x2, y2)] = true;
points.push_back(std::make_pair(x2, y2));
}
int sol = 0;
for (int i = 0; i < points.size(); i++)
for (int j = 0; j < points.size(); j++) {
if (i == j) continue;
if (i == 0 && j == 5) {
i++;
i--;
}
int dx = (points[i].x - points[j].x);
int dy = (points[i].y - points[j].y);
std::pair<int, int> P1 = std::make_pair(points[i].x + dy, points[i].y - dx);
std::pair<int, int> P2 = std::make_pair(points[j].x + dy, points[j].y - dx);
if (myMap.find(P1) == myMap.end()) continue;
if (myMap.find(P2) == myMap.end()) continue;
sol++;
}
std::cout << sol / 4 << "\n";
out << sol / 4 << "\n";
}