记录编号 |
343272 |
评测结果 |
TTTTTTTTTT |
题目名称 |
Color the Axis |
最终得分 |
0 |
用户昵称 |
哒哒哒哒哒! |
是否通过 |
未通过 |
代码语言 |
C++ |
运行时间 |
10.040 s |
提交时间 |
2016-11-09 07:20:46 |
内存使用 |
5.16 MiB |
显示代码纯文本
- #include <queue>
- #include <iostream>
- #include <cstdlib>
- #include <cstring>
- #include <cstdio>
- using namespace std;
- #define ll long long
- int read(){
- int x=0,f=1;char ch=getchar();
- while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}
- while(ch>='0'&&ch<='9') x=x*10+ch-48,ch=getchar();
- return x*f;
- }
- const int maxn=201000;
- int num[maxn*4],lazy[maxn*4],le,ri;
- #define lc rt*2
- #define rc rt*2+1
- void build(int rt,int l,int r){
- if(l==r){
- num[rt]=1;
- return;
- }
- int mid=(l+r)/2;
- build(lc,l,mid);build(rc,mid+1,r);
- num[rt]=num[lc]+num[rc];
- }
- void modify(int rt,int l,int r){
- if(le<=l&&ri>=r){num[rt]=0;return;}
- int mid=(l+r)/2;
- if(le<=mid) modify(lc,l,mid);
- if(ri>mid) modify(rc,mid+1,r);
- num[rt]=num[lc]+num[rc];
- }
-
- int main(){
- freopen("Axis.in","r",stdin);freopen("Axis.out","w",stdout);
-
- int n=read(),m=read();
- build(1,1,n);
- memset(lazy,-1,sizeof lazy);
- for(int i=1;i<=m;i++){
- le=read(),ri=read();
- modify(1,1,n);
- printf("%d\n",num[1]);
- }
- fclose(stdin);fclose(stdout);
- return 0;
- }