#P14738. [Bulgarian2015春季赛]maxprod

    ID: 13954 传统题 1000ms 256MiB 尝试: 2 已通过: 1 难度: 5 上传者: 标签>CF1700贪心排序模拟构造搜索回溯法

[Bulgarian2015春季赛]maxprod

题目描述

设有一个以 pp 为底的进位制,其中给出了 nn 个两两不同的数字。

要求把这 nn 个数字每个恰好使用一次,构造出若干组方案。每组方案由 kkpp 进制非负整数构成,这些数都不允许有前导零。其中第一个数有 d1d_1 位,第二个数有 d2d_2 位,……,第 kk 个数有 dkd_k 位,并且满足:

d1+d2++dk=nd_1+d_2+\cdots+d_k=n

对于每一组方案,考虑这 kk 个数的乘积。

请编写程序 maxprod,求所有可能方案中乘积的最大值。

输入格式

标准输入共三行:

  • 第 1 行:三个十进制自然数 p,n,kp,n,k,分别表示所讨论进位制的底数、数字个数,以及每组方案中数的个数;
  • 第 2 行:给出 nn 个互不相同的 pp 进制数字,数字之间用空格分隔。
    对于值在 0099 的数字,使用通常的数字字符表示;对于更大的值,则依次使用大写英文字母 AZ 表示,其中 A 表示 1010B 表示 1111,依此类推;
  • 第 3 行:给出 kk 个十进制自然数 d1,d2,,dkd_1,d_2,\ldots,d_k,表示每组方案中对应各数的位数。

输出格式

输出一行,一个 pp 进制数,表示按题意构造时所能得到的最大乘积。

数据范围

  • 2p362 \le p \le 36
  • n>1n>1
  • d1+d2++dk=nd_1+d_2+\cdots+d_k=n
  • 20%20\% 的测试中,p=10p=10
  • 50%50\% 的测试中,p16p \le 16

样例

输入

11 9 3
A 3 2 4 8 5 7 6 9
4 2 3

输出

719603A68

样例说明

最大乘积(以 1111 进制表示)为:

$$8742_{11} \times A5_{11} \times 963_{11} = 719603A68_{11}$$