Codeforces Beta Round 96 (Div. 1) |
---|
Закончено |
Еще одна характерная черта языка Shakespeare — то, что переменные называются именами персонажей пьес Шекспира, а все действия над ними (изменение значений, вывод на печать и так далее) производятся в виде диалога с другими персонажами. Кроме того, новые значения переменных задаются довольно громоздко, поэтому их использование обычно стараются свести к минимуму.
Нам нужно вывести на печать заданную последовательность n натуральных чисел. Для этого у нас есть m персонажей-переменных и два вида действий над ними:
В качестве variable может выступать любая из m переменных. Переменные обозначаются строчными латинскими буквами от «a» до «z» включительно. В качестве integer может выступать любое натуральное число.
Будем считать штрафом за использование первого типа действия количество установленных бит в числе integer. Штраф за использование второго типа действия — 0. Найдите и выведите программу, в которой суммарный штраф будет минимален.
В первой строке записаны целые числа n и m (1 ≤ n ≤ 250, 1 ≤ m ≤ 26). Вторая строка содержит последовательность чисел для вывода. Все ее элементы — натуральные числа от 1 до 109, включительно. Последовательность надо выводить в заданном порядке (слева направо).
Выведите количество строк и цену в оптимальной программе. Далее выведите саму программу, по одной команде на строку. Если таких программ несколько, то выведите любую (надо минимизировать только цену).
7 2
1 2 2 4 2 1 2
11 4
b=1
print(b)
a=2
print(a)
print(a)
b=4
print(b)
print(a)
b=1
print(b)
print(a)
6 3
1 2 3 1 2 3
9 4
c=1
print(c)
b=2
print(b)
a=3
print(a)
print(c)
print(b)
print(a)
Название |
---|