Двумерное динамическое программирование
Даня услышал прекрасную новость: если пройтись по району «информатиковый», то можно собрать некое количество телефонов 99phone, но, к сожалению, среди этих телефонов завалялись и not99phone, у которых процент заряда не соответствует стандартам, т.е. он либо меньше 0%, либо больше 100%.
Район «информатиковый» представляет из себя квадрат размера N×N (1 < N < 18). В каждой клетке данного квадрата лежит какой-то из телефонов (в клетке указан процент заряда данного телефона). Даня может двигаться только вниз или вправо, т.е. за одно перемещение он может продвинуться только на одну клетку вниз, либо на одну клетку вправо. При попытке выхода за границу Даня уходит в режим «не беспокоить», после чего он больше не может проводить вебинары. Определите минимальный и максимальный суммарный заряд телефонов 99phone, которые смог подобрать Даня, пройдя из левого верхнего угла в правый нижний угол. В ответ запишите сначала максимальный, а затем минимальный заряды без пробелов и разделителей. Все данные о районе «информатиковый» находятся в файле 18_3.xls.