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

Средний уровеньЗадание

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

Похожие задания