Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи на заказ _ олимпиадная информатика. Вычислительная геометрия. Найти прямую.

Автор: tototot 27.12.2007 22:46

Максимальное время работы на одном тесте: 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 28.12.2007 1:16

Откуда задача?

Автор: volvo 28.12.2007 1:24

http://olympiads.ru/zaoch/2007/problems/f.shtml, вестимо...

Автор: Michael_Rybak 28.12.2007 1:40

Вот и отличненько.

tototot, попробуй, пожалуйста, воровать в другом месте.