听取WA声一片,菜鸡求助呜呜呜
查看原帖
听取WA声一片,菜鸡求助呜呜呜
206676
YaeMik0楼主2021/6/1 12:58
#include<bits/stdc++.h>
#define N 100005
#define ll long long
#define ls (p<<1)
#define rs (p<<1|1)
#define mid (l+r>>1)
using namespace std;
inline ll read(){
    int x=0,f=1;char c=getchar();
    while(!isdigit(c)){if(c=='-')f=-1;c=getchar();}
    while(isdigit(c)){x=x*10+c-'0';c=getchar();}
    return x*f;
}
ll tr[N*4],a[N],n,m,L[N],R[N],op[N],lz[4*N],q;
void build(int p,int l,int r,int x){
    if(l==r){tr[p]=a[l]>=x;return;}
    build(ls,l,mid,x);build(rs,mid+1,r,x);
    tr[p]=tr[ls]+tr[rs];
}
void push_down(int p,int l,int r){
	if(!lz[p])return;
    lz[ls]=lz[rs]=lz[p];
    if(lz[p]==1){tr[ls]=mid-l+1;tr[rs]=r-mid;}
    else tr[ls]=tr[rs]=0;
    lz[p]=0;
}
void modify_area(int p,int l,int r,int ml,int mr,int x){
    if(l>=ml&&r<=mr){tr[p]=(r-l+1)*x;lz[p]=x?1:-1;return;}
    if(l>mr||r<ml)return;
    push_down(p,l,r);
    modify_area(ls,l,mid,ml,mr,x);modify_area(rs,mid+1,r,ml,mr,x);
    tr[p]=tr[ls]+tr[rs];
}
ll query(int p,int l,int r,int ql,int qr){
    if(l>qr||r<ql)return 0;
    if(l>=ql&&r<=qr)return tr[p];
    push_down(p,l,r);
    return query(ls,l,mid,ql,qr)+query(rs,mid+1,r,ql,qr);
}
ll ask(int p,int l,int r,int pos){
    if(l==pos&&pos==r)return tr[p];
    if(pos<=mid)return ask(ls,l,mid,pos);
    else return ask(rs,mid+1,r,pos);
}
bool check(ll x){
    build(1,1,n,x);
    for(int i=1;i<=m;i++){
        ll cnt=query(1,1,n,L[i],R[i]);
        if(!op[i]){
            modify_area(1,1,n,L[i],R[i]-cnt,0);
            modify_area(1,1,n,R[i]-cnt+1,R[i],1);
        }else{
            modify_area(1,1,n,L[i],L[i]+cnt-1,1);
            modify_area(1,1,n,L[i]+cnt,R[i],0);
        }
    }
    return ask(1,1,n,q);
}
int main(){
    n=read(),m=read();
    for(int i=1;i<=n;i++)a[i]=read();
    for(int i=1;i<=m;i++){op[i]=read(),L[i]=read(),R[i]=read();}
    q=read();
    ll l=1,r=n,ans=0;
    while(l<=r){
        if(check(mid)){ans=mid;l=mid+1;}
        else r=mid-1;
    }
    printf("%lld",ans);
    return 0;
}

能过样例(废话),但是提交莫名全WA
QAQ
跪求大佬orz

2021/6/1 12:58
加载中...