比赛 |
[不是Rapiz出的]农场主钦定NOIP模拟赛1 |
评测结果 |
TTTTTTTTTT |
题目名称 |
Color the Axis |
最终得分 |
0 |
用户昵称 |
Kulliu |
运行时间 |
10.030 s |
代码语言 |
C++ |
内存使用 |
0.34 MiB |
提交时间 |
2016-11-08 21:36:42 |
显示代码纯文本
#include<algorithm>
#include<iostream>
#include<cstring>
#include<cstdlib>
#include<cctype>
#include<cstdio>
#include<vector>
#include<queue>
#include<ctime>
#include<cmath>
#include<list>
#include<map>
#include<set>
using namespace std;
#define F(i,l,r) for(int i=l;i<=r;i++)
#define D(i,r,l) for(int i=r;i>=l;i--)
#define lson l , mid , rt << 1
#define rson mid+1 , r , rt << 1|1
typedef long long LL;
const int INF = 100000000,N = 2010;
int n,m, col[N<<2],sum[N<<2];
inline void read(int &v){
v=0;int f=1;char ch=getchar();
while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}
while(ch<='9'&&ch>='0'){v=v*10+ch-48;ch=getchar();}v*=f;
}
inline void PushUp(int rt){
col[rt]=col[rt<<1]+col[rt<<1|1];
}
void update(int L,int R,int l,int r,int rt){
if(L<=l&&r<=R){
col[rt]=r-l+1;
return;
}
int mid=(l+r)>>1;
if(L<=mid)update(L,R,lson);
if(R>mid)update(L,R,rson);
PushUp(rt);
}
int main(){
int l,r;
read(n),read(m);
F(i,1,m){
read(l),read(r);
update(l,r,1,n,1);
printf("%d\n",n-col[1]);
}
return 0;
}