Условие задачи Даны отрезки на прямой. Какое максимальное количество отрезков можно выбрать так, чтобы никакие два из них не пересекались? Отрезки считаются открытыми. Алгоритм решения Нам даются отрезки, из которых необходимо набрать максимальное количество так, чтобы никакие два не пересекались. 1. Сортируем отрезки по правому краю: так мы будем знать отрезок, который заканчивается первым, следовательно, он никому дальше не помешает, сортируем отрезки именно по правому краю, так как нам важнее тот факт, чтобы они не пересекались. 2. Далее мы запоминаем номер отрезка, который взяли (сначала в переменной будет храниться 0, так как самый первый отрезок заканчивается раньше всех, значит, мы его точно берем). И заводим переменную, которая хранит количество отрезков (изначально = 1, так как первый отрезок уже взяли). 3. Проходимся по списку кортежей (пример: [(1,4), (3,6), (7,10)]) и сравниваем конец отрезка, который мы взяли с началом нового отрезка. То есть, если следующий по счету отр
Разбор задачи "Отрезки" с сайта CodeForces на Python
17 ноября 202117 ноя 2021
233
1 мин