P1061

[Poi2012]Vouchers

[Poi2012]Vouchers

考虑正整数集合。有 nn 组人依次前来取数。若第 ii 组有 xx 个人,则该组内的人按照到达顺序依次取数。每个人取走当前尚未被取走的、最小的 xx 的正倍数,因此这一组共取走 xx 个数。

所有人按照各组的到达顺序以及组内的取数顺序,从 11 开始连续编号。正整数中有 mm 个数被标记为幸运数,请求出所有取到幸运数的人的编号。

输入格式

第一行输入一个正整数 mm,表示幸运数的数量。

接下来 mm 行,每行输入一个正整数 xx,表示 xx 是一个幸运数。

随后一行输入一个正整数 nn,表示前来取数的组数。

接下来 nn 行,每行输入一个正整数 xx,表示这一组有 xx 个人。

输出格式

第一行输出一个非负整数 kk,表示共有 kk 个人取到了幸运数。

接下来 kk 行,按照人员编号严格递增的顺序输出这些人的编号,每行一个。

样例输入

4
1
6
8
16
3
4
2
4

样例输出

3
2
4
6

样例解释

共有 1010 个人,他们依次取走的数为:

4, 8, 12, 16, 2, 6, 20, 24, 28, 32。4,\ 8,\ 12,\ 16,\ 2,\ 6,\ 20,\ 24,\ 28,\ 32。

其中,第 22、44、66 个人分别取到了幸运数 88、1616、66。

数据范围

  • 1≤m≤1061\le m\le 10^6;
  • 每个幸运数 xx 满足 1≤x≤1061\le x\le 10^6;
  • 1≤n≤1061\le n\le 10^6;
  • 每组人数 xx 满足 1≤x≤1061\le x\le 10^6。

来源与许可

本题为 POI 2012 试题「Vouchers」,题面与测试数据整理自 BZOJ。

样例 1

输入

4
1
6
8
16
3
4
2
4

输出

3
2
4
6