混合进制
You cannot submit for this problem because the contest is ended. You can click "Open in Problem Set" to view this problem in normal mode.
Description
本题思路来源 来自usaco 2013 nov bronze 第三题
现在给定一个特殊的计数方式,混合进制数。也就是给定一个多位数,每位数上的进制都是不一样的。 比如给定一个三位数:这三位数的进制分别是2 3 2.也就是最小的位数逢2进1,次小位数逢3进制,最高位逢2进1. 那么,这个混合进制数最小数是0,最大数是121。一共有232=12个数。 分别是:000,001,010,011,020,021,100,101,110,111,120,121。 如果我想知道第7大的数,就是100.
现在的问题就是,给你每个位数上的进制,你找出从0开始,第k个数是多少?
Input Format
第一行 一个整数n,表示这个数有n位 n<=30 第二行,n个用空格隔开的整数,依次为最高位到最低位的进制。 保证进制都在十进制以内。 保证这个混合进制数的最大数的编号在int范围内。 第三行为m,表示m次查询。m<=6 接下来m行,每行一个整数k,表示要查询的混合进制数的第k小的数 保证k在int范围内。
Output Format
m行。每行一个数,表示要查询的混合进制数的第k小的数在这个混合进制数里的值是多少。 如果超过要求的位数,那么输出-1
Sample
input
3
2 3 2
3
7
9
14
output
100
110
-1
## Hint
时间限制:1s
空间限制:256MB
20200820进制问题练习
- Status
- Done
- Rule
- ACM/ICPC
- Problem
- 8
- Start at
- 2020-8-20 9:19
- End at
- 2020-8-23 9:19
- Duration
- 72 hour(s)
- Host
- Partic.
- 23