题目描述
小 X 画了一条数轴,他将进行 n 次操作,每次操作他会先在数轴上的 xi 位置上增添 ai 个标记。
然后他需要选择二元组 (l,r),满足 l,r 为整数, 0≤l≤r≤m,且在数轴上的区间 [l,r] 上的标记的个数小于等于 k。
对于每次操作,你需要求出满足条件的二元组 (l,r) 中 r−l 的最大值。
输入格式
第一行,三个整数,n,m 和 k。
下面 n 行,每行两个整数 xi 和 ai。
输出格式
共 n 行,表示每次操作后的答案。
若找不到符合条件的二元组 (l,r),输出 -1
。
5 4 0
2 1
3 1
0 1
1 1
4 1
1
1
0
0
-1
5 15 1
3 1
8 1
1 1
7 1
14 1
15
11
11
7
6
10 100 10
94 3
22 10
9 4
37 1
21 10
92 5
50 9
68 8
44 4
78 9
100
93
83
77
77
77
68
44
40
26
10 100 3
95 1
13 1
52 1
74 1
40 1
54 1
71 1
68 1
51 3
12 2
100
100
100
94
80
59
56
53
50
39
提示
【样例解释 #2】
每次操作后选择的二元组分别是 (0,15),(4,15),(4,15),(8,15),(9,15)。
【数据范围与约定】
数据点编号 |
n= |
m= |
k= |
1,2 |
100 |
100 |
3 |
3,4 |
103 |
5,6 |
104 |
7,8 |
500 |
9,10 |
103 |
11,12 |
104 |
105 |
13∼16 |
105 |
106 |
0 |
17∼21 |
3 |
22,23 |
109 |
100 |
24,25 |
106 |
保证测试点 13∼16 的 xi 为随机构造。
测试点 24,25 的时间限制为 3s ,其他测试点的时间限制均为 2s。
对于 100% 的数据,满足 1≤n≤106,0≤m≤109,0≤xi≤m,0≤k≤100,1≤ai≤100。
注意:数轴上同一个位置上可能会多次增添标记。
已自动开启 O2 优化,保证时空限制均为 std 在开启 O2 优化后的两倍以上。