Cod sursa(job #2626141)

Utilizator CoakazeRotaru Catalin Coakaze Data 6 iunie 2020 12:08:14
Problema Patrate 3 Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.07 kb
#include <iostream>
#include <fstream>
#include <vector>
#include <map>
#include <cmath>
#include <algorithm>

using namespace std;

vector <pair <int,int>> v;
map <pair <int,int>, int> h;

int main()
{
    ifstream f("patrate3.in");
    ofstream g("patrate3.out");
    int n;
    f>>n;
    double X, Y;
    for(int i = 0, x, y; i < n; ++i)
    {
        f>>X>>Y;
        x = (int)round(X*10000);
        y = (int)round(Y*10000);
        v.push_back({x, y});
        h[v[i]] = 1;
    }
    sort(v.begin(), v.end());
    int sol = 0;
    for(int i=0; i<n; ++i)
        for(int j=i+1; j<n; ++j)
            if(v[j].first > v[i].first && v[j].second >= v[i].second)
            {
                if(i == j)
                    continue;
                int dx = v[j].first - v[i].first;
                int dy = v[j].second - v[i].second;
                if(h.find(make_pair(v[i].first - dy, v[i].second + dx)) != h.end() && h.find(make_pair(v[j].first - dy, v[j].second + dx)) != h.end())
                    sol++;
            }
    g<<sol;
    return 0;
}