题目描述
请注意本题特殊的时间限制。由于评测机性能差距,OJ 上时限暂且设置为 $24$ 秒。
给你平面上 $n$ 个点,第 $i$ 个点拥有初始点权 $v_i$。现在一共有 $m$ 次操作,每次操作给出一个矩形和一个权值 $c$,表示把被包含在矩形中的点点权都减去 $c$。
每次操作之后请求出点权不小于零的点的个数。本题强制在线。
输入格式
第一行两个整数 $n,m$。
接下来 $n$ 行,第 $i$ 行是两个整数 $p_i,v_i$,表示存在一个点 $(i,p_i)$,其初始点权是 $v_i$,数据保证 $p$ 是一个排列。
下面 $m$ 行,每行五个整数 $x_1,y_1,x_2,y_2,c$,表示操作的矩形左下角的坐标和右上角的坐标以及减去的值 $c$。需要注意的是,这五个数都需要异或上 $\text{lastans}$ 以获得真实值,上一次的答案初始为 $0$。
输出格式
输出 $m$ 行,每行一个整数表示答案。
样例输入
5 5
5 3
2 3
4 13
3 4
1 10
4 1 5 1 3
4 6 0 1 3
6 7 6 7 0
6 7 0 0 14
1 0 7 0 4
样例输出
5
4
4
3
3
数据范围
全部数据保证 $1\le n\le 10^4,1\le m\le 4\times 10^6,0\le v_i,c\le 4\times 10^7,1\le x_1\le x_2\le n,1\le y_1\le y_2\le n$。
子任务捆绑:
编号 | 子任务分数 | $n\le$ | $m\le$ |
---|---|---|---|
1 | $20$ | $10^3$ | 1000 |
2 | $30$ | $10^4$ | $1.5\times 10^6$ |
3 | $30$ | $10^4$ | $3\times 10^6$ |
4 | $20$ | $10^4$ | $4\times 10^6$ |
提示
下发快读板板,可以按需使用。
namespace IO{
char ibuf[(1<<20)+1],*iS,*iT;
#if ONLINE_JUDGE
#define gh() (iS==iT?iT=(iS=ibuf)+fread(ibuf,1,(1<<20)+1,stdin),(iS==iT?EOF:*iS++):*iS++)
#else
#define gh() getchar()
#endif
inline long long read(){
char ch=gh();
long long x=0;
bool t=0;
while(ch<'0'||ch>'9') t|=ch=='-',ch=gh();
while(ch>='0'&&ch<='9') x=x*10+(ch^48),ch=gh();
return t?-x:x;
}
}
using IO::read;
样例下载
大样例太大了传不上来,最后一个大样例你大可自己造一组。