printРабочее место участника

printЗадачи

1341. Кубики

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

Маленький Метью очень любил играть в кубики. Он делал столбики из кубиков и ставил эти столбики на квадратный столик (не случайным образом, а в клетки, если представить столик разлинованным на клетки по размерам кубиков). Из-за маленького роста Метью мог построить столбики не более 8 кубиков. На рисунке можно увидеть одно из его творений на столике размером 4x4.
10624.gif
Понравившиеся ему строения он зарисовывал. Но так как он не умел рисовать 3D-изображения, то ограничивался видом спереди и видом справа. Метью думал, что этой информации достаточно, чтобы построить это строение снова (но он никогда не пытался сделать это).
10621.gif
Вид спереди
10622.gif
Вид справа
Через несколько лет, рассматривая рисунки, он понял, что можно построить более чем одно строение с тем же самым видом спереди и справа.
Метью обнаружил, что существует некоторое "минимальное" из всех возможных строение с минимальным числом кубиков `N` и "максимальное" с числом кубиков `M`. Для показанного примера "минимальное" строение содержит `N=7` кубиков, а "максимальное" – `M=17` кубиков.
10623.gif
Минимальное строение
10620.gif
Максимальное строение
Напишите программу, которая позволяет вычислить максимальное (`M`) и минимальное (`N`) число кубиков для строения, задаваемого видами спереди и справа.
Входной файл содержит в первой строке размеры столика `K` (`1\ ≤\ K\ ≤\ 8`), во второй строке – `K` чисел через пробел: высота столбиков (от 0 до 8) на виде спереди, в третьей строке также `K` чисел – высота столбиков на виде справа. Известно, что по этим исходным данным можно построить как минимум одно строение.
В выходной файл вывести числа `N` и `M` через пробел.

Пример ввода

4
2 0 3 1
1 1 2 3

Пример вывода

7 17
Источник: ACM ICPC Western European RC, 1995
loading