#include "experiment1-algorithms.hpp"
#include <iostream>

int main() {
    std::ios::sync_with_stdio(false);
    std::cin.tie(nullptr);
    std::int64_t n = 0;
    if (!(std::cin >> n) || n < 2 || n > 400000) {
        std::cerr << "expected 2 <= n <= 400000\n";
        return 1;
    }
    std::vector<experiment1::Point> points;
    points.reserve(static_cast<std::size_t>(n));
    for (std::int64_t i = 0; i < n; ++i) {
        std::int64_t x = 0, y = 0;
        if (!(std::cin >> x >> y) || x < -10000000 || x > 10000000 ||
            y < -10000000 || y > 10000000) {
            std::cerr << "invalid or missing coordinate\n";
            return 1;
        }
        points.push_back({static_cast<std::int32_t>(x), static_cast<std::int32_t>(y)});
    }
    std::cout << *experiment1::closest_squared(std::move(points)) << '\n';
}
