#B1027. 【ZCX-004-DIV3】C. 模运算

【ZCX-004-DIV3】C. 模运算

题目背景

小程最近在学习取模运算,小智决定出几道查询题来考考他。

题目描述

小智给了小程一个长为 nn 的序列 a1,,ana_1,\ldots,a_n

现在有 qq 次询问,每次询问会给出一个正整数 mm
对于每次询问,小程需要回答:

序列中的这些数除以 mm 后,余数一共有多少种不同的取值?

更形式化地说,对于每次给定的 mm,需要统计集合:

$$\{a_1 \bmod m,\ a_2 \bmod m,\ \ldots,\ a_n \bmod m\}$$

中不同元素的个数。

输入格式

第一行两个正整数 n,qn,q,分别表示序列长度和询问个数。

第二行 nn 个整数 a1,,ana_1,\ldots,a_n,表示给定序列。

接下来 qq 行,每行一个正整数 mm,表示一次询问。

输出格式

对于每次询问,输出一行一个正整数,表示不同余数的个数。

输入输出样例 #1

输入 #1

6 3
3 1 4 1 5 9
5
2
20

输出 #1

4
2
5

说明

【样例 1 解释】

  • m=5m=5 时,a1,,a6a_1,\ldots,a_6 除以 55 的余数分别为 3,1,4,1,0,43,1,4,1,0,4,共有 44 种不同的余数。
  • m=2m=2 时,a1,,a6a_1,\ldots,a_6 除以 22 的余数分别为 1,1,0,1,1,11,1,0,1,1,1,共有 22 种不同的余数。
  • m=20m=20 时,a1,,a6a_1,\ldots,a_6 除以 2020 的余数分别为 3,1,4,1,5,93,1,4,1,5,9,共有 55 种不同的余数。

数据范围

$$1\le n\le 3000,\quad 1\le q\le 1000,\quad 1\le m\le 3000,\quad 0\le a_i\le 10^9$$

测试点说明

测试点编号 nn\le qq\le
11 22 11
22 10001000
3,43,4 300300 11
585\sim 8 10001000
9,109,10 30003000

提示:10910^9 是十亿。