记录编号 288454 评测结果 AAAAAAAAAA
题目名称 贪婪大陆 最终得分 100
用户昵称 Gravatar521 是否通过 通过
代码语言 C++ 运行时间 0.142 s
提交时间 2016-08-02 21:19:40 内存使用 1.34 MiB
显示代码纯文本
#include<stdio.h>
#define M 100001
inline void read(int&x)
{
	int flag=1;
	char ch;
	while(ch=getchar(),ch<'0'||ch>'9') if(ch=='-') flag=-1;
	x=(ch^'0');
	while(ch=getchar(),ch>='0'&&ch<='9')x=(x<<3)+(x<<1)+(ch^'0');
	x*=flag;
}
//===============================================================
int sum[M<<2][2];
inline void update(int p,int l,int r,int rt,int k)
{
	if(l>r) return ;
	if(l==r){
		sum[rt][k]++;
		return ;
	}
	int mid=l+r>>1;
	if(mid>=p) update(p,l,mid,rt<<1,k);
	else update(p,mid+1,r,rt<<1|1,k);
	sum[rt][k]=sum[rt<<1][k]+sum[rt<<1|1][k];
}
inline int query(int L,int R,int l,int r,int rt,int k)
{
	if(L>R||l>r) return 0;
	if(l>=L&&r<=R) return sum[rt][k];
	int mid=l+r>>1,ret=0;
	if(mid>=L) ret+=query(L,R,l,mid,rt<<1,k);
	if(mid<R) ret+=query(L,R,mid+1,r,rt<<1|1,k);
	return ret;
}
int _521()
{
	freopen("greedisland.in","r",stdin);
	freopen("greedisland.out","w",stdout);
	int n,m,i,a,b,c,p=0;
	read(n),read(m);
	for(i=1;i<=m;i++){
		read(a),read(b),read(c);
		if(a==1){
			update(b,1,n,1,0);
            update(c,1,n,1,1);
            p++;
		}
		else printf("%d\n",p-query(1,b-1,1,n,1,1)-query(c+1,n,1,n,1,0));
	}
	return 0;
}
int _520=_521();
int main(){;}