Codeforces Round 990 (Div. 1) |
---|
Закончено |
Дана матрица, состоящая из $$$2$$$ строк и $$$n$$$ столбцов. Строки нумеруются от $$$1$$$ до $$$2$$$ сверху вниз; столбцы нумеруются от $$$1$$$ до $$$n$$$ слева направо. Обозначим ячейку на пересечении $$$i$$$-й строки и $$$j$$$-го столбца как $$$(i,j)$$$. Каждая ячейка содержит одно целое число; изначально число в ячейке $$$(i,j)$$$ равно $$$a_{i,j}$$$.
Вы можете выполнять следующую операцию любое количество раз (возможно, ноль):
После выполнения операций вам нужно выбрать путь от ячейки $$$(1,1)$$$ до ячейки $$$(2,n)$$$. Для каждой ячейки $$$(i,j)$$$ на пути, кроме последней, следующая ячейка на пути должна быть либо $$$(i+1,j)$$$, либо $$$(i,j+1)$$$. Разумеется, путь не может выходить за пределы матрицы.
Стоимость пути — это сумма всех чисел во всех $$$(n+1)$$$ ячейках, принадлежащих пути. Вам нужно выполнить операции и выбрать путь так, чтобы его стоимость была максимальной.
Каждый тест состоит из нескольких наборов входных данных. В первой строке находится одно целое число $$$t$$$ ($$$1 \le t \le 5000$$$) — количество наборов входных данных. Далее следует описание наборов входных данных.
Каждый набор входных данных состоит из трех строк:
Гарантируется, что сумма значений $$$n$$$ по всем наборам входных данных не превосходит $$$5000$$$.
Для каждого набора входных данных выведите одно целое число — максимальную стоимость пути, которую вы можете получить.
31-10531 2 310 -5 -342 8 5 31 10 3 4
-5 16 29
Ниже приведены объяснения первых трех наборов входных данных из примера. Левая матрица — это матрица, заданная во входных данных, правая — состояние матрицы после нескольких (возможно, нуля) перестановок столбцов. Оптимальный путь выделен зеленым цветом.
Название |
---|