#P15772. 漏洞队列

    ID: 14984 传统题 3000ms 1024MiB 尝试: 2 已通过: 1 难度: 9 上传者: 标签>数学算法基础排序二分倍增CF2700

漏洞队列

题目描述

实验室里实现了一个队列。正常队列支持两种操作:

  1. 在队尾插入一个元素;
  2. 从队首删除一个元素。

然而,这个队列的删除函数写错了。每次执行删除操作时,它并不会只删除队首一个元素,而是会同时删除当前队列中若干个指定位置上的元素。

具体地,有 nn 个互不相同的位置 a1,a2,,ana_1,a_2,\ldots,a_n。队列从队首开始按 11 编号;每次删除操作会删除当前编号为这些位置的元素。删除后,剩下的元素会重新从 11 开始编号。

为了观察这个错误队列的行为,实验员先向队列中依次加入了无限多个整数 1,2,3,4,1,2,3,4,\ldots,之后不再插入任何元素,只连续执行 dd 次错误删除操作。

例如,若当前队列为 1 2 3 4 5 6 7 8...,并且每次删除第 22 个和第 55 个元素,那么一次删除后队列变为 1 3 4 6 7 8 9 10...;再次执行后,队列会变为 1 4 6 8 9 10 11 12...

现在有 qq 个询问。每个询问给出一个整数 xx,你需要求出执行 dd 次删除操作后,队列中第 xx 个位置上的数是多少。

输入格式

第一行包含一个整数 nn

第二行包含 nn 个互不相同的整数 a1,a2,,ana_1,a_2,\ldots,a_n,表示每次删除操作要删除的位置。

第三行包含两个整数 q,dq,d,分别表示询问数和删除操作次数。

接下来 qq 行,每行包含一个整数 xx,表示一个询问。

输出格式

输出 qq 行,第 ii 行输出第 ii 个询问的答案。

数据范围

  • 1n51051\le n\le 5\cdot 10^5
  • 1ai10121\le a_i\le 10^{12}
  • 所有 aia_i 互不相同;
  • 1q51051\le q\le 5\cdot 10^5
  • 1d10121\le d\le 10^{12}
  • 1x10121\le x\le 10^{12}

样例 1

输入

2
2 5
8 2
1
2
3
4
5
6
7
8

输出

1
4
6
8
9
10
11
12

样例 2

输入

3
7 1 32
8 5
2
8
7
17
26
19
3
1

输出

8
18
17
27
39
29
10
6