CF132E Bits of merry old England
题目描述
莎士比亚语言的另一个特点是变量以莎士比亚戏剧中的角色命名,所有对变量的操作(赋值、输出等)看起来就像角色之间的对话。新变量赋值的方式相当繁琐,因此程序员应尽量减少变量的使用。
你需要输出给定的 $n$ 个整数序列。为此,你有 $m$ 个变量,并且可以对它们进行两种操作:
- variable=integer
- print(variable)
任意 $m$ 个变量都可以用作变量。变量用小写字母 $a$ 到 $z$ 表示。整数可以是任意整数。
假设第一种操作的惩罚等于整数 $integer$ 的二进制表示中 $1$ 的个数。第二种操作没有惩罚。请你输出一个程序,使得输出给定整数序列的总惩罚最小。
输入格式
输入的第一行包含两个整数 $n$ 和 $m$($1 \leq n \leq 250$,$1 \leq m \leq 26$)。第二行包含需要输出的整数序列。序列中的每个元素都是 $1$ 到 $10^9$ 之间的整数。序列必须按给定顺序(从左到右)输出。
输出格式
输出最优程序的行数和最小惩罚值。接下来输出该程序,每行一条指令。如果存在多个最小惩罚的程序,输出任意一个即可(只需最小化惩罚值)。
说明/提示
由 ChatGPT 4.1 翻译