Cod sursa(job #2623245)

Utilizator Mari_BarbuBarbu Mariana Mari_Barbu Data 2 iunie 2020 19:59:16
Problema Patrate 3 Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.11 kb
#include<iostream>
#include <fstream>
#include <vector>
#include <set>
#include <cmath>
#include <algorithm>

using namespace std;

ifstream f ("patrate3.in");
ofstream g ("patrate3.out");

vector <pair <int,int> > v;
set <pair <int,int> > s;

int main()
{
    int n;
    f>> n;
    double x, y;
    for(int i = 0; i < n; ++i)
    {
        f >> x >> y;
        x = (int)round(x*10000);
        y = (int)round(y*10000);
        v.push_back(make_pair(x, y));
        s.insert(v[i]);
    }
    sort(v.begin(), v.end());

    int rez = 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(s.find(make_pair(v[i].first-dy, v[i].second+dx)) != s.end()
                   && s.find(make_pair(v[j].first-dy, v[j].second+dx)) != s.end())
                   rez++;
            }
    g << rez;
    f.close();
    g.close();
    return 0;
}