[POI2012] BON-Vouchers

题意翻译

### 题目描述 Byteasar 经营着一家焦糖店。 对于所有正整数 $c$,Byteasar 都有且仅有一个装有 $c$ 个糖果的包裹。 Byteasar 准备了 $m$ 张代金券,并在装有 $b_i$ 个糖果的包裹里分别放入一张。 现在共有 $n$ 批顾客,第 $i$ 批客人有 $a_i$ 人,且每名顾客会买走装有最少糖果的包裹,满足这些糖果可平均分给这一批的 $a_i$ 个人。例如,若 $n = 2, a_1 = 4, a_2 = 8$,则第一批顾客买走的糖果数量分别为 $4, 8, 12, 16$,第二批顾客买走的糖果数量分别为 $2, 6$。 将所有顾客按顺序从 $1$ 开始编号,Byteasar 想知道取走代金券的顾客数量和各自的编号。 ### 输入输出格式 #### 输入格式 第一行输入一个整数 $m$ ($1 \le m \le 1\ 000\ 000$),表示代金券总数。 接下来 $m$ 行,输入 $m$ 个整数 $b_1,b_2,\cdots, b_m$ ($1 \le b_i \le 1\ 000\ 000$),分别代表放入代金券的包裹装有的糖果数量,保证 $b_i$ 单调递增。 接下来输入一个整数 $n$ ($1 \le n \le 1\ 000\ 000$),表示共有 $n$ 批顾客。 接下来 $n$ 行,输入 $n$ 个整数 $a_1,a_2,\cdots, a_n$ ($1 \le a_i \le 1\ 000\ 000$),分别代表每批顾客的人数。 对于不少于 $50\%$ 的数据,保证输入的所有数字不超过 $5\ 000$。 #### 输出格式 第一行一个整数 $z$,代表获得代金券的顾客数量。 接下来 $z$ 行每行一个整数,从小到大输出获得代金券的顾客编号。

题目描述

The candy shop owned by Byteasar sells delicious caramel candy. For every positive integer $c$ there is exactly one package that contains $c$ candies; currently no new deliveries are expected. To encourage customers to buy the sweets, Byteasar has planted $m$ vouchers for an annual supply of chocolate into some packages, making sure to put at most one voucher in each package. The carnival starts next week in Byteburg, and it will last $n$ days; on the $k$-th day of the carnival a party with $a_k$ guests will be held. Byteasar is confident that on the $k$-th day's morning each of those guests is going to buy, in his own store, the smallest package of candy available whose content can be equally distributed between the party guests. For example, if $n=2$, $a_1=4$, $a_2=2$, then on the first day of the carnival he expects to sell the packages containing four, eight, twelve, and sixteen candies, selling those with two and six candies on the second day. Now he is wondering which customers will end up with the packages holding the vouchers. He has asked you to write a program that will determine this for him. 定义n个数为幸运数字,一共有n批人,设第i批人有x个,则它们会依次取走余下的x的倍数中最小的x个,问哪些人去走了幸运数字

输入输出格式

输入格式


On the first line of the standard input there is a single integer $m$ ($1\le m\le 1\ 000\ 000$) that denotes the number of vouchers. The $k$-th of the $m$ lines that follow holds an integer $b_k$ ($1\le b_k\le 1\ 000\ 000$)denoting the size (i.e., the number of candies inside) of a package in which Byteasar has placed the $k$-th voucher. These numbers are given in an increasing order. Then the next line contains a single integer $n$ ($1\le n\le 1\ 000\ 000$) that denotes the number of carnival days. The $k$-th of the $n$ lines that follow holds an integer $a_k$($1\le a_k\le 1\ 000\ 000$)denoting the number of guests attending the $k$-th party. You may assume that in tests worth at least 50% of the total points none of the numbers given on the input exceeds $5\ 000$.

输出格式


In the first line of the standard output your program should print an integer $z$ - the number of packages with vouchers sold. The following $z$ lines should specify the numbers of those customers who bought a package with a voucher, in an increasing order. The customers are numbered from $1$ in the order of their purchases.

输入输出样例

输入样例 #1

4
1
6
8
16
3
4
2
4

输出样例 #1

3
2
4
6