题目描述
某个数据中心有多台服务器,每台服务器在不同的时间收到了一些请求。现在需要编写一个程序来查询服务器的通信记录。
给定以下输入:
-
n:表示服务器的数量,范围为正整数。
-
m:表示查询的次数。
-
q:表示共有q条请求信息,logs是请求信息数组
-
logs:一个二维数组,其中每个子数组是由两个元素组成的,表示服务器的编号和请求时间。服务器编号从 0 到 n-1,请求时间是一个非负整数,共q条请求。
-
x:表示查询时间区间的长度,范围为非负整数。
-
queries:一个整数数组,表示要查询的时间点列表,长度为m。
你需要得到一个长度等于 m 的数组 arr ,其中 arr[i] 表示在时间区间 [queries[i] - x, queries[i]] 内没有收到请求的服务器数目。
注意时间区间是个闭区间。
输入
第一行一个整数n(1<=n<=100000),一个整数q(1<=q<=100000)
接下来q行,每行两个整数分别表示logs[0],logs[1](1<=logs[i][0]<=n,1<=logs[i][1]<=1000000)
第q+2行一个整数x(1<=x<=100000)
第q+3行一个整数m表示查询的次数(1<=m<=100000)
第q+4行共m个整数表示queries[i](x<=queries[i]<=1000000)
输出
输出一个长度等于 queries.length 的数组 arr ,其中 arr[i] 表示在时间区间 [queries[i] - x, queries[i]] 内没有收到请求的服务器数目。
3 3
1 3
2 6
1 5
5
2
10 11
提示
样例解释:
对于 queries[0]:id 为 1 和 2 的服务器在区间 [5, 10] 内收到了请求,所以只有服务器 3 没有收到请求。
对于 queries[1]:id 为 2 的服务器在区间 [6,11] 内收到了请求,所以 id 为 1 和 3 的服务器在这个时间段内没有收到请求。
测试数据2:
输入:
3 4
2 4
2 1
1 2
3 1
2
2
3 4
输出:
0 1
解释:
对于 queries[0]:区间 [1, 3] 内所有服务器都收到了请求。
对于 queries[1]:只有 id 为 3 的服务器在区间 [2,4] 内没有收到请求。