记录编号 |
423830 |
评测结果 |
AAAAAAAAAA |
题目名称 |
Color the Axis |
最终得分 |
100 |
用户昵称 |
rewine |
是否通过 |
通过 |
代码语言 |
C++ |
运行时间 |
1.194 s |
提交时间 |
2017-07-12 16:32:44 |
内存使用 |
10.79 MiB |
显示代码纯文本
#include <cstdio>
#include <iostream>
#include <cstring>
#include <algorithm>
#include <cmath>
using namespace std;
typedef long long LL;
void read(int &x) {
char c; bool flag = 0;
while((c=getchar())<'0'||c>'9') flag |= (c=='-');
x=c-'0';while((c=getchar())>='0'&&c<='9') x=x*10+c-'0';
if(flag) x = -x;
}
#define N 200000
#define L (o<<1)
#define R (o<<1|1)
#define mid ((l+r)>>1)
#define Lch l,mid,o<<1
#define Rch mid+1,r,o<<1|1
int x,y,val;
struct E {int len,lazy;}t[N*5];
void Modify(int l,int r,int o) {
if(x > r || y < l || t[o].len==r-l+1) return;
if(x <= l && r <= y) {
t[o].len = r-l+1;
return;
}
Modify(Lch); Modify(Rch);
t[o].len = t[L].len+t[R].len;
}
int n,m;
int main() {
freopen("axis.in","r",stdin);freopen("axis.out","w",stdout);
read(n); read(m);
for (int i = 1; i <= m; i++) {
read(x); read(y);
Modify(1,n,1);
printf("%d\n",n-t[1].len);
}
return 0;
}