Cod sursa(job #2754237)

Utilizator Virgil993Virgil Turcu Virgil993 Data 25 mai 2021 15:27:33
Problema Patrate 3 Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.26 kb

#include <iostream>

#include <fstream>

#include <cmath>

#include <set>



using namespace std;

int n,nr;
double x,y;
set<pair<int,int>> puncte; //set ce memoreaza puncte
pair<int,int> crd[1005]; //variabila in care memoram coordonatele unui punct.

int main() {

    ifstream in("patrate3.in");
    ofstream out("patrate3.out");
    in>>n;
    for (int i = 0; i < n; ++i) {//inseram punctele in set
        in>>x>>y;
        crd[i].first=round(x*10000);
        crd[i].second=round(y*10000);
        puncte.insert(crd[i]);

    }
    int x3, y3, x4, y4;//vom compara doua puncte si vom vedea daca fiind puse in colturi opuse, colturile create(x3,y3) , (x4,y4) se regasesc in multimea de puncte
    for(int i=0;i<n;++i)
    {
        for(int j=0;j<n;++j)
        {
            if(i!=j)
            {
                x3 = crd[i].second - crd[j].second + crd[j].first;
                y3 = crd[j].first - crd[i].first + crd[j].second;
                x4 = crd[i].second - crd[j].second + crd[i].first;
                y4 = crd[j].first - crd[i].first + crd[i].second;
                if (puncte.find({ x3,y3 }) != puncte.end() && puncte.find({ x4,y4 }) != puncte.end())
                    nr++;
            }
        }
    }
    out<<nr/4;

}