Cod sursa(job #2620899)

Utilizator DiagrDiana Grigore Diagr Data 29 mai 2020 20:38:58
Problema Patrate 3 Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.16 kb
#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;
}