记录编号 343272 评测结果 TTTTTTTTTT
题目名称 Color the Axis 最终得分 0
用户昵称 Gravatar哒哒哒哒哒! 是否通过 未通过
代码语言 C++ 运行时间 10.040 s
提交时间 2016-11-09 07:20:46 内存使用 5.16 MiB
显示代码纯文本
  1. #include <queue>
  2. #include <iostream>
  3. #include <cstdlib>
  4. #include <cstring>
  5. #include <cstdio>
  6. using namespace std;
  7. #define ll long long
  8. int read(){
  9. int x=0,f=1;char ch=getchar();
  10. while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}
  11. while(ch>='0'&&ch<='9') x=x*10+ch-48,ch=getchar();
  12. return x*f;
  13. }
  14. const int maxn=201000;
  15. int num[maxn*4],lazy[maxn*4],le,ri;
  16. #define lc rt*2
  17. #define rc rt*2+1
  18. void build(int rt,int l,int r){
  19. if(l==r){
  20. num[rt]=1;
  21. return;
  22. }
  23. int mid=(l+r)/2;
  24. build(lc,l,mid);build(rc,mid+1,r);
  25. num[rt]=num[lc]+num[rc];
  26. }
  27. void modify(int rt,int l,int r){
  28. if(le<=l&&ri>=r){num[rt]=0;return;}
  29. int mid=(l+r)/2;
  30. if(le<=mid) modify(lc,l,mid);
  31. if(ri>mid) modify(rc,mid+1,r);
  32. num[rt]=num[lc]+num[rc];
  33. }
  34.  
  35. int main(){
  36. freopen("Axis.in","r",stdin);freopen("Axis.out","w",stdout);
  37. int n=read(),m=read();
  38. build(1,1,n);
  39. memset(lazy,-1,sizeof lazy);
  40. for(int i=1;i<=m;i++){
  41. le=read(),ri=read();
  42. modify(1,1,n);
  43. printf("%d\n",num[1]);
  44. }
  45. fclose(stdin);fclose(stdout);
  46. return 0;
  47. }