#include #include #include using namespace std; const int N=100050; int n,m,opt[20][N*2],x[N*2],cnt; struct node { int l,r; void read(){ scanf("%d%d",&l,&r); x[cnt++]=l; x[cnt++]=r; } void print(){ printf("%d %d\n",l,r); } bool operator <(const node tmp) const{ return lr) return 0; if(l==cnt||r==-1) return 0; int ret=0; for(int i=19;i>=0;i--){ if(opt[i][l]<=r) { ret+=(1<=0;i--) { while(r>0&&no[r-1].l>=i){ r--; mn=min(mn,no[r].r); } opt[0][i]=mn; } for(int i=0;i<20;i++) opt[i][cnt]=cnt; for(int i=1;i<20;i++){ for(int j=0;j