Pagini recente » Cod sursa (job #2852861) | Cod sursa (job #2976654) | Cod sursa (job #397674) | Cod sursa (job #1538405) | Cod sursa (job #2745702)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("patrate3.in");
ofstream fout("patrate3.out");
unordered_map<int, int> h; /// un hash ce contine elemente de forma abscisa : ordonata
int n, ct;
pair<int, int> a[1005];
void citire(){
double x,y;
fin>>n;
for(int i = 1; i <= n; ++ i){
fin>>x>>y;
a[i].first = round(x * 10000);
a[i].second = round(y * 10000);
h[a[i].first] = a[i].second;
}
}
int main()
{
citire();
for(int i = 1; i <= n; i ++)
for(int j = i + 1; j <= n; j ++){
/// calculam coordonatele celorlalte 2 varfuri si vedem daca exista in hash
int x, y;
x = a[i].second - a[j].second;
y = a[j].first - a[i].first;
if(h[a[i].first + x] == a[i].second + y && h[a[j].first + x] == a[j].second + y)
ct++;
}
fout<<ct/2; /// fiecare patrat este numarat de 2 ori
return 0;
}