Logo Universal Online Judge

UOJ

时间限制:25 s 空间限制:1024 MB
Statistics

题目描述

请注意本题特殊的时间限制。由于评测机性能差距,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;

样例下载

大样例太大了传不上来,最后一个大样例你大可自己造一组。