Условие
Даны координаты N точек на плоскости. Найдите точку, ближайшую к началу координат, и выведите её номер. Если несколько точек находятся на одинаковом минимальном расстоянии, выберите первую во входных данных. Номера точек начинаются с единицы.
Объявите структуру struct Point с целочисленными полями x и y. Сохраните точки в массиве структур. Реализуйте функцию int nearest_point(const struct Point points[], int count), которая возвращает индекс выбранной точки с нуля, не изменяет массив и не выполняет ввод или вывод. В функции main прочитайте данные, вызовите функцию и преобразуйте полученный индекс в номер точки.
Для сравнения расстояний достаточно сравнивать значения x² + y². Используйте для их вычисления тип long long, выполняя преобразование до умножения: при заданных ограничениях квадрат координаты может не помещаться в 32-битный int.
Ограничения
Время: 2 секунды. Память: 64 МиБ. Вывод: до 2 МиБ. Стандарты: C11 / C++17.
Входные данные
В первой строке вводится целое число N — количество точек. В следующих N строках вводятся по два целых числа xᵢ и yᵢ — координаты очередной точки. Ограничения: 1 ≤ N ≤ 1000, −10⁶ ≤ xᵢ, yᵢ ≤ 10⁶.
Выходные данные
Одно целое число — номер ближайшей к началу координат точки, от 1 до N.
Примеры
3 3 4 1 1 5 0
2
3 1 0 0 -1 2 2
1
2 1000000 1000000 0 0
2