Задача

Как это выглядит на координатной плоскости
Капля дождя падает вертикально вниз с большой высоты на землю. На пути у капли могут встретиться препятствия, которые изменяют ее путь к земле.
Будем рассматривать двумерный вариант (на плоскости) этой задачи. Пусть препятствия – это наклонные непересекающиеся отрезки, а капля имеет точечные размеры. Капля падает вертикально вниз из точки, расположенной выше любого из препятствий. Если капля при падении соприкасается с отрезком-препятствием, то она стекает по отрезку вниз, пока не упадет вертикально вниз с меньшего по высоте конца отрезка.
Напишите программу, которая по координате X0 точки появления капли над землей вычисляет координату X точки соприкосновения капли с землей Y=0.
Входные данные: во входном файле в первой строке содержатся два целых числа через пробел – координата X0 точки появления капли (0<X0<10000) и количество отрезков-препятствий N(0≤N≤100). Далее следует N строк, каждая из которых содержит четыре разделенные пробелами числа x1,y1,x2,y2 – координаты левого и правого концов отрезка-препятствия (все числа целые и находятся в диапазоне от 0 до 10000,x1<x2,y1≠y2). Отрезки не пересекаются и не соприкасаются.
Выходные данные: в выходной файл вывести одно целое число – координату X точки соприкосновения капли с землей.
Тесты
Входные данные | Выходные данные |
30 4 25 35 40 30 1 32 20 30 33 22 50 29 18 10 33 19 |
18 |
12 5 12 9 13 5 17 8 19 5 13 10 10 7 6 17 4 12 13 4 5 12 |
13 |
40 3 12 30 21 39 41 5 45 70 20 30 25 35 |
40 |
70 6 45 75 598 37 489 48 726 47 673 873 46 36 60 735 373 762 483 73 364 59 462 375 583 457 |
726 |
Код программы
Решение задачи
Сортируем наш динамический массив по наибольшим координатам y и, если y равны, по координатам x.
Далее составим алгоритм решения задачи:
- Если X∈[x1,x2], то наша капля пересечется с данной прямой. В противном случае мы просто игнорируем данное препятствие.
- Тогда мы сравниваем координаты y1 и y2, выбираем из них наименьшее и присваиваем соответствующую координату x1 или x2 координате
нашей капли X. - Повторяем до тех пор, пока не будут обработаны все препятствия и выводим последнюю присвоенную координату X нашей капли, так как она и будет координатой x соприкосновения капли с зимой.
Ссылки
Условие задачи на e-olymp.com
Решение задачи на ideone.com