Cod sursa(job #2622992)

Utilizator theodor.moroianuTheodor Moroianu theodor.moroianu Data 2 iunie 2020 13:41:26
Problema Patrate 3 Scor 5
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.9 kb
#include <bits/stdc++.h>
using namespace std;

typedef long long i64;

typedef pair <int, int> Point;

set <Point> points;

bool check(Point a, Point b)
{
    if (a == b)
        return false;
    int dy = b.first - a.first;
    int dx = a.second - b.second;
    return (points.find({ a.first + dx, a.second + dy }) != points.end() &&
        points.find({ b.first + dx, b.second + dy }) != points.end());
}

int main()
{
    ifstream in("patrate3.in");
    ofstream out("patrate3.out");

    int n;
    in >> n;

    auto read_nr = [&]() {
        string s;
        in >> s;
        return 10000 * stoi(s.substr(0, s.size() - 5)) + stoi(s.substr(s.size() - 4));
    };

    while (n--)
        points.insert({ read_nr(), read_nr() });

    int ans = 0;
    for (auto i : points)
        for (auto j : points)
            ans += check(i, j);

    assert(ans % 4 == 0);

    out << ans / 4 << '\n';
    
    return 0;
}