Lang:G++
Edit12345678910111213141516171819202122232425262728293031#include<iostream>#include<stdio.h>#include<cmath>#include<map>#include<string>#include<string.h>#include<algorithm>#define MAXN 400005#define oo 1000000007#define ll long longusing namespace std;int P[MAXN][2],id[MAXN],T[MAXN<<2],col[MAXN<<2];bool F[MAXN];int find(int d,int n){int l=0,r=n+1,mid;while (r-l>1){mid=l+r>>1;if (id[mid]<=d) l=mid;else r=mid;}return l;}void PushDown(int x){if (!col[x]) return;T[x<<1]=T[x<<1|1]=col[x];col[x<<1]=col[x<<1|1]=col[x];col[x]=0;}