记录编号 117713 评测结果 AAAAAAAAAA
题目名称 贪婪大陆 最终得分 100
用户昵称 Gravatarztx 是否通过 通过
代码语言 C++ 运行时间 0.150 s
提交时间 2014-08-31 11:30:26 内存使用 1.05 MiB
显示代码纯文本
#include <cstdio>

#define  maxn  100002

int n , m ;
int x , y , k ;
int tot = 0 , ans ;

int L[maxn] = {0} , R[maxn] = {0} ;

inline int lowbit(int x) {
	return x & (-x) ;
}

inline void insert(int* C ,int pos , int num) {
	while (pos <= n) {
		C[pos] += num ; pos += lowbit(pos) ;
	}
}

inline int sum(int* C , int pos ) {
	int tot = 0 ;
	while (pos > 0) {
		tot += C[pos] ; pos -= lowbit(pos) ;
	}
	return tot ;
}

int main() {
	freopen("greedisland.in","r",stdin);
	freopen("greedisland.out","w",stdout);
	scanf("%d%d", &n , &m ) ;
	for (int i = 1 ; i <= m ; i ++ ) {
		scanf("%d%d%d", &k , &x , &y ) ;
		if (k == 1) {
			insert(L , x , 1) ;
			insert(R , y , 1) ;
			tot ++ ;
		}
		else {
			ans = tot-(sum(R,x-1)+sum(L,n+1)-sum(L,y)) ;
			printf("%d\n",ans);
		}
	}
	return 0 ;
}