На плоскости нарисовали прямоугольник, после чего его разрезали прямыми. Напишите программу, которая вычислит, сколько из полученных кусков исходного прямоугольника имеют треугольную форму.
Рисунок, соответствующий 1-му примеру входных и выходных данных
Сначала на вход программы поступают два положительных числа X и Y, задающих координаты правого верхнего угла прямоугольника. Прямоугольник расположен в системе координат так, что левый нижний его угол имеет координаты 0,0 и стороны параллельны осям координат.
Далее вводится целое число N — количество разрезов (1≤N≤200). Затем описываются сами разрезы. Каждый разрез делался вдоль некоторой прямой. Каждая прямая, соответствующая разрезу, задается тремя числами A, B, C такими, что все точки (x,y) этой прямой (и только они) удовлетворяют уравнению Ax+By+C=0 (при этом всегда A2+B2>0).
Все входные данные (кроме N) – вещественные числа, заданы с двумя знаками после десятичной точки и не превышают 104. Никакие две прямые не совпадают между собой и не содержат сторон прямоугольника. Каждый разрез проходит через точки внутри исходного прямоугольника.
Выведите одно целое число — количество частей исходного прямоугольника, имеющих треугольную форму.
Система оценки
1 балл получат программы, правильно решающие задачу при ограничении 1≤N≤50.
5.00 1.00 3 1.00 -2.00 0.00 1.00 -3.00 -2.00 1.00 1.00 -4.00
3
4.00 2.00 2 1.00 -2.00 0.00 1.00 2.00 -4.00
4
При игре в лапту одна команда ловит мяч и пытается осалить им бегущего. Игрок другой команды должен, перед тем как бежать, ударить мяч в поле. Известно, на какое максимальное расстояние он может ударить, а также скорости и начальные координаты игроков другой команды. Требуется выбрать направление и силу удара так, чтобы минимальное время, которое потребуется другой команде, чтобы поднять мяч с земли, было наибольшим. (Пока мяч летит, игроки стоят на местах.)
В первой строке входных данных содержатся два числа: D — максимальное расстояние удара и N — количество соперников на поле (D и N натуральные числа, D ≤ 1000, N ≤ 200). В следующих N строках задается по три числа – начальные координаты xi и yi и максимальная скорость vi соответствующего игрока (скорости и координаты — целые числа, –1000 ≤ xi ≤ 1000, 0 ≤ yi ≤ 1000, 0 < vi ≤ 1000), никакие два игрока не находятся изначально в одной точке. Игрок, бьющий мяч, находится в точке с координатами (0,0). Мяч выбивается в точку с неотрицательной ординатой (y ≥ 0).
Выведите сначала время, которое потребуется игрокам, чтобы добежать до мяча, а затем координаты точки, в которую нужно выбить мяч. Если таких точек несколько, выведите координаты любой из них. Время и координаты нужно вывести с точностью 10–3.
Оценка задачи
1 балл получат программы, которые верно работают, когда в поле не более двух соперников.
10 2 1 1 1 -1 1 1
9.05539 0.00000 10.00000
Два числа – координаты точки, лежащей вне начала координат.
Одно число – величина её полярного угла (то есть угла от положительного направления оси Ох до луча с началом в точке (0,0), содержащего данную точку, против часовой стрелки).
Четыре числа – координаты двух невырожденных (т.е. ненулевых) векторов.
Одно число – величина угла \(\alpha\) между векторами (\(0\le\alpha\le\pi\)) с точностью до пятого знака после запятой.
2 1 1 2
0.64350
-2 1 -1 2
0.64350
Шесть чисел – координаты трёх вершин треугольника.
Одно число – величина площади треугольника.
1 1 2 4 3 2
2.50000