Загрузка [MathJax]/jax/output/HTML-CSS/fonts/TeX/fontdata.js
 

printОбластная олимпиада школьников по информатике (командные соревнования)

print7. Робинзон

Ограничения: время – 1s/2s, память – 32MiB Ввод: input.txt или стандартный ввод Вывод: output.txt или стандартный вывод copy
Послать решение Blockly Посылки Темы Где Обсудить (0)

Робинзон, опасаясь хищников, туземцев и пиратов, решил построить свое жилище на высокой скале прямоугольной формы. На поверхности скалы есть несколько горизонтальных уступов, по которым можно свободно ходить. Чтобы добираться до вершины скалы, Робинзон решил прикрепить к камням несколько лиан. Лиана, спускаясь с вершины скалы или одного из уступов, позволяет перемещаться между всеми уступами, через которые или рядом с которыми она проходит. Робинзон может вырастить лианы произвольной длины из семян. Лианы растут на 1 метр в день. Лианы нельзя связывать между собой с целью увеличения длины, так как получившееся соединение не выдерживает вес человека.
Напишите программу, которая вычислит минимальное число дней для выращивания лиан необходимой длины.
В первой строке ввода содержатся два целых числа, разделенных пробелом – высота скалы H (0 ) и количество уступов N (0\ ≤\ N\ ≤\ 1000). Далее следует N строк, в каждой строке содержатся три целых числа – координаты левого края уступа L_i (0\ ≤\ L_i\ <\ 1000), координаты правого края уступа R_i (L_i\ <\ R_i\ ≤\ 1000) и высота уступа h_i (0\ <\ h_i\ <\ H).
Вывести в первой строке одно целое число – минимальное число дней для выращивания лиан.

Пример ввода

100 2
0 50 25
50 70 60

Вывод для примера

40
loading