题目链接:
要注意 更新区间的时候 如果是
1 3 1
1 2 2
3 4 3
这种情况的时候应该是三种颜色
要注意 0
#include#include #include #include using namespace std;#define maxn 80000int a[maxn],b[maxn],c[maxn],mx;int ll[maxn],rr[maxn],zz[maxn];void init(){ memset(a,-1,sizeof(a)); memset(b,-1,sizeof(b)); memset(c,0,sizeof(c));}void lazy(int in){ if(a[in]>=0){ a[in*2]=a[in]; a[in*2+1]=a[in]; a[in]=-1; }}void updata(int l,int r,int x,int y,int va,int in){ if(x mid){ updata(mid+1,r,x,y,va,in*2+1); }else if(y<=mid){ updata(l,mid,x,y,va,in*2); }else{ updata(l,mid,x,mid,va,in*2); updata(mid+1,r,mid+1,y,va,in*2+1); } //cout< < mid){ return query(mid+1,r,x,in*2+1); }else return query(l,mid,x,in*2);}int main(){ int n; while(cin>>n&&n){ init(); mx=-1; for(int j=0;j >ll[j]>>rr[j]>>zz[j]; mx=max(mx,rr[j]); if(mx>8000) mx=8000; rr[j]=min(8000,rr[j]); if(ll[j]+1>rr[j]){ rr[j]++; } //updata(1,mx,x+1,y+1,z,1); } mx=8000; for(int j=0;j