#P137. 混合进制

混合进制

题目描述

本题思路来源 来自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个数是多少?

输入格式

第一行 一个整数n,表示这个数有n位 n<=30 第二行,n个用空格隔开的整数,依次为最高位到最低位的进制。 保证进制都在十进制以内。 保证这个混合进制数的最大数的编号在int范围内。 第三行为m,表示m次查询。m<=6 接下来m行,每行一个整数k,表示要查询的混合进制数的第k小的数 保证k在int范围内。

输出格式

m行。每行一个数,表示要查询的混合进制数的第k小的数在这个混合进制数里的值是多少。 如果超过要求的位数,那么输出-1

样例

input

3
2 3 2
3
7
9
14

output

100
110
-1


## 限制与提示
时间限制:1s


空间限制:256MB