比赛 [不是Rapiz出的]农场主钦定NOIP模拟赛1 评测结果 WWWWWWWWWW
题目名称 Color the Axis 最终得分 0
用户昵称 Hzoi_chairman 运行时间 3.845 s
代码语言 C++ 内存使用 6.39 MiB
提交时间 2016-11-08 19:33:46
显示代码纯文本
#include<cstdlib>
#include<cstdio>
int read()
{
	int x,f=1;
	char ch;
	while(ch=getchar(),ch>'9'||ch<'0')if(ch=='-')f=-1;
	x=ch-48;
	while(ch=getchar(),ch>='0'&&ch<='9')x=x*10+ch-48;
	return x*f;
}
#define mid ((l+r)>>1)
#define lson rt<<1,l,mid
#define rson rt<<1|1,mid+1,r
#define lch rt<<1
#define rch rt<<1|1
#define maxn 800100
int a[maxn],lazy[maxn],x,y;
void build(int rt,int l,int r)
{
	if(l==r)
	{
		a[rt]=1;
		return ;
	}
	build(lson);
	build(rson);
	a[rt]=a[lch]+a[rch];
}
void change(int rt,int l,int r)
{
	if(x<=l&&y>=r)
	{
		a[rt]=0;lazy[rt]=1;
		return ;
	}
	if(lazy[rt])a[lch]=a[rch]=0;
	if(x<=mid)change(lson);
	if(y>mid)change(rson);
	a[rt]=a[lch]+a[rch];
}
int main()
{
	freopen("axis.in","r",stdin);
	freopen("axis.out","w",stdout);
    int n=read(),m=read();
    build(1,1,n);
    for(int i=1;i<=m;i++)
    {
		x=read(),y=read();
		change(1,1,n);
		printf("%d\n",a[1]);
	}
//	system("pause");
	fclose(stdin);
	fclose(stdout);
}