P4392 [BOI2007] Sound 静音问题 CE出错
  • 板块学术版
  • 楼主Lavande
  • 当前回复9
  • 已保存回复9
  • 发布时间2024/1/7 13:59
  • 上次更新2024/1/7 16:07:47
查看原帖
P4392 [BOI2007] Sound 静音问题 CE出错
696531
Lavande楼主2024/1/7 13:59

f

问:为什么我的代码在DEV-C++里没错,交上洛谷就出错了?哪里CE了?

#include<bits/stdc++.h>
//#include<algorithm>
using namespace std;
const int N=1e6+5;
int n,m,k,cnt;
int a[N],t[N];

struct node{
	int maxn=INT_MIN;
	int minn=INT_MAX; 
}c[N];

int lowbit(int k){
	return k&-k;
}

void add(int i,int x){
	while(i<=n){
		i+=lowbit(i);
		c[i].maxn+=max(c[i].maxn,x);
		c[i].minn+=min(c[i].minn,x);
	}
}

int sum(int l,int r){
	int mx=INT_MIN,mn=INT_MAX;
    while(l<=r){
    	while(r-lowbit(r)>=l){
            r-=lowbit(r);
    		mx=max(c[r].maxn,mx);
            mn=min(c[r].minn,mn);
		}
        mx=max(mx,a[r]);
        mn=min(mn,a[r]);
        r--;
    }
    if(abs(mx-mn)<=k)  return 1;
    else return 0;
}

int main(){
//	freopen(".in","r",stdin);
//	freopen(".out","w",stdout);
//	ios::sync_with_stdio(false);
	cin>>n>>m>>k;
	for(int i=1;i<=n;i++){
		cin>>a[i];
		add(i,a[i]);
	}
	for(int i=1;i<=n-m+1;i++){
		if(sum(i,i+m-1)){
			t[++cnt]=i;
		}
	}
	for(int i=1;i<=cnt;i++){
		cout<<t[i]<<endl;
	}
	if(cnt==0) {
		cout<<"NONE";
		return 0;
	}
	return 0;
}

2024/1/7 13:59
加载中...