Pagini recente » Cod sursa (job #1595929) | Cod sursa (job #1145606) | Cod sursa (job #1697318) | Cod sursa (job #1020427) | Cod sursa (job #2620899)
#include <bits/stdc++.h>
#define eroare 0.0001
using namespace std;
bool cmp(pair<double, double> a, pair<double, double> b){
return ((a.first <= b.first - eroare) || (a.first < b.first + eroare && a.second <= b.second - eroare));
}
int main() {
ifstream f("patrate3.in");
ofstream g("patrate3.out");
vector<pair<double, double>> v;
int n;
int patrate = 0;
f >> n;
for(int i = 0; i < n; i++)
{
pair<double, double> x;
f >> x.first >> x.second;
v.push_back(x);
}
sort(v.begin(), v.end());
for(int i = 0; i < n - 1; i++)
for(int j = i+1; j < n; j++)
if(v[i].first < v[j].first && v[i].second <= v[j].second)
{ double dif1 = v[j].first - v[i].first;
double dif2 = v[j].second - v[i].second;
pair<double, double> a,b;
a = make_pair(v[i].first - dif2, v[i].second + dif1);
b = make_pair(v[j].first - dif2, v[j].second + dif1);
if (binary_search(v.begin(), v.end(), b, cmp) && (binary_search(v.begin(), v.end(), a, cmp)))
patrate++;
}
g << patrate;
return 0;
}