#801. 鼹鼠大盗

鼹鼠大盗

题目描述

鼹鼠大盗在某天深夜偷窃了一大包花生。它需要趁着夜色穿过一条长度为 ss 米的横向地道,把花生运回家。地道非常长,不过鼹鼠大盗这次是有备而来,它可以搭乘事先准备好的动力钻头快速推进。但这种动力钻头非常耗费能源,每推进一段距离,鼹鼠大盗就需要带着它钻出地面补充燃料,然后继续潜入地道进行下次推进。每次推进一旦开始就无法暂停。动力钻头共有 mm 个档位可以选择,其中第 ii 个档位的单次推进距离为 did_i 米。鼹鼠大盗需要在出发前就设定好档位,一旦确定就无法再更改。

暗夜笼罩的大地上危机四伏。在地道上方的地面上,有 nn 只黄鼠狼在埋伏猎物,它们的坐标分别为 x1,x2...xnx_1,x_2...x_n,每个位置最多只有一只黄鼠狼。若鼹鼠钻出地面补充燃料时遇到黄鼠狼,它就可能会有性命之忧。因此鼹鼠在出发前需要慎重选择动力钻头的档位,以便在补充燃料时尽可能避开黄鼠狼。

你需要根据黄鼠狼的位置,选择合适的档位,使得鼹鼠大盗在穿过地道的整个过程中碰到的黄鼠狼数量最少。若有多个档位满足条件,则需要将它们全部找出。

输入格式

第一行:三个整数 s,m,ns,m,n,分别表示地道的长度、档位数量、黄鼠狼的数量。

第二行:mm 个整数,分别表示每个档位的单次推进距离。

第三行:nn 个整数,分别表示每只黄鼠狼所在的坐标位置。

输出格式

第一行:一个整数,表示满足条件的档位总数。

第二行:若干个整数,分别表示每个满足条件的档位编号。

数据样例

5 3 5
2 4 5
1 2 3 4 5
2
2 3
1000000000 2 3
2 5
999999995 999999998 999999996
1
2

样例 11 解释

地道总长度为 55 米,动力钻头共有 33 个档位,黄鼠狼有 55 只。

131 \sim 3 个档位的单次推进距离分别为 2,4,52,4,5 米;

55 只黄鼠狼的坐标分别为 1,2,3,4,51,2,3,4,5

若选择第 11 档,单次推进距离为 22,则整个行进路程中会在坐标为 2,42,4 的位置各碰到一只黄鼠狼;

若选择第 22 档,单次推进距离为 44,则整个行进路程中只会在坐标为 44 的位置碰到一只黄鼠狼;

若选择第 33 档,单次推进距离为 55,则整个行进路程中只会在坐标为 55 的位置碰到一只黄鼠狼。

因此第 2,32,3 号档位都能使遇上的黄鼠狼数量最少。故第一行输出 22,表示可供选择的档位有 22 种;第二行输出 2,32,3,表示每个可供选择的档位编号。

数据规模与约定

对于 30%30\% 的数据,1xis100,1m,n10,1di1001≤x_i≤s≤100,1≤m,n≤10,1≤d_i≤100

对于 80%80\% 的数据, 1xis106,1m,n100,1di1061≤x_i≤s≤10^6,1≤m,n≤100,1≤d_i≤10^6

对于 100%100\% 的数据,1xis109,1m,n100,1di1091≤x_i≤s≤10^9,1≤m,n≤100,1≤d_i≤10^9