此问题是一个区间问题,对于每一个x都是一个删除区间,在没有其他删除的情况下区间即为[x,x+y-1],当x所在位置在其他删除区间中,那么整体往右移,直至不在删除区间中,当删除区间的右部在其他删除区间中,那么就要进行删除区间的融合,改变y的值,将后一个删除区间的长度加上,循环操作,直至右部没有在其他删除区间中,用map记录删除区间的左右端点
from collections import defaultdict
有一个初始为 [1,2,3,…] 的无限数列。你需要依次处理 q 个请求,每个请求包含两个整数 x 和 y。 对于每个请求,从数列的当前状态中,找出第一个大于等于 x 的数并将其抹去,重复该步骤共计 y 次。输出最后一次被抹去的数。所有抹去操作永久有效,会影响后续请求。
请求次数 q 不超过 105,每次请求中的 x 和 y 均不超过 109。
第一行输入一个整数 q,表示请求的个数。 接下来 q 行,每行包含两个由空格分隔的整数 x 和 y,表示一次请求。
By signing up a CodeFun2000 universal account, you can submit code and join discussions in all online judging services provided by us.