题目描述
小 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
。
提示
【样例解释 #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 优化后的两倍以上。