Cod sursa(job #2759365)

Utilizator ArkhamKnightyMarco Vraja ArkhamKnighty Data 17 iunie 2021 09:34:58
Problema Patrate 3 Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.07 kb
#include <fstream>
#include <vector>
#include <algorithm>
#include <set>
#include <cmath>
#define PF pair<float,float>
#define PI pair<int,int>

using namespace std;

vector < PF > v;
int rez;

set< PI > p;

ifstream cin("patrate3.in");
ofstream cout("patrate3.out");

void yes(PI a, PI b)
{
    PI c, d;
    c.first = a.first + (b.second - a.second);
    c.second = a.second + (a.first - b.first);

    d.first = b.first + (b.second - a.second);
    d.second = b.second + (a.first - b.first);

    if (p.find(c) != p.end() && p.find(d) != p.end())
	{
		//cout << p3.first <<" "<<p3.second<<" "<<p4.first<<" "<<p4.second << "\n";
		rez++;
	}
}

int main()
{
    int n;
    float x, y;
    cin >> n;

    for(int i = 1 ; i <= n ; i++)
        cin >> x >> y,
        v.push_back({round(x * 1000), round(y * 1000)}),
        p.insert(v[i-1]);

    sort(v.begin(), v.end());

    for(int i = 0 ; i < n ; i++)
        for(int j = 0 ; j < n ; j++)
            if(i != j)
                yes(v[i], v[j]);

    cout << rez / 4;
    return 0;
}