Помощь - Поиск - Пользователи - Календарь
Полная версия: олимпиадная информатика. Вычислительная геометрия. Найти прямую.
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи > Задачи на заказ
tototot
Максимальное время работы на одном тесте: 1 секунда
Максимальный объем используемой памяти: 64 мегабайта

На плоскости дано N горизонтальных отрезков. Будем говорить, что прямая пересекает отрезок, если у этой прямой и этого отрезка есть хотя бы одна общая точка (в том числе прямая пересекает отрезок, если она проходит через один из его концов). Требуется найти прямую, пересекающую все отрезки, или установить, что такой нет.

Формат входных данных

В первой строке входного файла находится единственное число N. В каждой из следующих N строк содержатся по три целых числа Pi, Qi, Ri, описывающих отрезки: соответствующий отрезок соединяет точки (Pi, Ri) и (Qi, Ri). Никакие два отрезка не лежат на одной прямой.

1≤N≤10000, Pi<Qi, все числа по модулю не превосходят 10000.

Формат выходных данных

В случае, если искомая прямая существует, выведите в выходной файл коэффициенты ее уравнения (будем задавать прямую уравнением вида Ax+By+C=0, г де x, y - координаты точек прямой, A, B, C - такие коэффициенты, что указанному уравнению удовлетворяют все точки прямой, и только они; соответственно, чтобы задать прямую, нужно задать три числа - A, B, C).

Коэффициенты уравнения должны быть целыми и не должны превосходить по модулю 109 (гарантируется, что при наличии решения такие A, B, C существуют).

Если прямой не существует, выведите в выходной файл сообщение "No solution" (без кавычек).
Примеры
{input}
3
0 1 0
0 1 1
0 1 2
{output}
1 0 0
{input}
5
0 2 0
2 4 1
1 3 2
1 3 -1
1 3 -2
{output}
3 -1 -5

{input}
3
0 1 0
1 2 1
-2 -1 2
{output}
No solution

Michael_Rybak
Откуда задача?
volvo
Отсюда, вестимо...
Michael_Rybak
Вот и отличненько.

tototot, попробуй, пожалуйста, воровать в другом месте.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.