На плоскости задано множество точек с целочисленными координатами. Необходимо найти количество отрезков, обладающих следующими свойствами: 1) оба конца отрезка принадлежат заданному множеству; 2) ни один конец отрезка не лежит на осях координат; 3) отрезок пересекается с обеими осями координат. Напишите эффективную по времени и по используемой памяти программу для решения этой задачи. Программа считается эффективной по времени, если при увеличении количества точек в k раз время работы возрастает не более чем в k раз. Программа считается эффективной по памяти, если размер памяти для хранения всех необходимых данных не зависит от количества точек и не превышает 1 килобайта. Перед текстом программы кратко опишите алгоритм решения и укажите язык программирования и его версию. Входные данные В первой строке задаётся N — количество точек в заданном множестве. Каждая из следующих строк содержит два целых числа x и y — координаты очередной точки. Гарантируется, что 1 ≤ N ≤ 10000; –1000 ≤ x, y ≤ 1000. Пример входных данных: 4 6 6 -8 8 -9 -9 7 -5 Выходные данные Необходимо вывести единственное число: количество удовлетворяющих требованиям отрезков. Пример выходных данных для приведённого выше примера входных данных: 2.
На плоскости задано множество точек с целочисленными координатами. Необходимо найти количество отрезков, обладающих следующими свойствами: 1) оба конца отрезка принадлежат заданному множеству; 2) ни один конец отрезка не лежит на осях координат; 3) отрезок пересекается с обеими осями координат. Напишите эффективную по времени и по используемой памяти программу для решения этой задачи. Программа считается эффективной по времени, если при увеличении количества точек в k раз время работы возрастает не более чем в k раз. Программа считается эффективной по памяти, если размер памяти для хранения всех необходимых данных не зависит от количества точек и не превышает 1 килобайта. Перед текстом программы кратко опишите алгоритм решения и укажите язык программирования и его версию. Входные данные В первой строке задаётся N — количество точек в заданном множестве. Каждая из следующих строк содержит два целых числа x и y — координаты очередной точки. Гарантируется, что 1 ≤ N ≤ 10000; –1000 ≤ x, y ≤ 1000. Пример входных данных: 4 6 6 -8 8 -9 -9 7 -5 Выходные данные Необходимо вывести единственное число: количество удовлетворяющих требованиям отрезков. Пример выходных данных для приведённого выше примера входных данных: 2.