到底是哪错了,本蒟蒻找俩天啦!
查看原帖
到底是哪错了,本蒟蒻找俩天啦!
750591
IKUN_dashuai楼主2023/7/12 16:29
#include<bits/stdc++.h>
using namespace std;
int n,t,stmin[22][500005],stmax[22][500005];
int main(){
	cin>>n>>t;
	for(int i=1;i<=n;i++){
		scanf("%d",&stmin[0][i]);
		stmax[0][i]=stmin[0][i];
	}
	cout<<endl;
	for(int i=1;i<=21;i++){
		for(int j=1;j+(1<<i)-1<=n;j++){
			stmin[i][j]=min(stmin[i-1][j],stmin[i-1][j+(1<<(i-1))]);
			stmax[i][j]=max(stmax[i-1][j],stmax[i-1][j+(1<<(i-1))]);
			cout<<stmax[i][j]<<" "<<stmin[i][j]<<endl;
		}
		cout<<endl;
	}
	cout<<endl;
	cout<<endl;
	for(int i=1;i<=t;i++){
		int a=0,b=0;
		scanf("%d%d",&a,&b);
		int lo=log2(a-b+1);
		int mmin=min(stmin[lo][a],stmin[lo][b-(1<<lo)+1]);
		int mmax=max(stmax[lo][a],stmax[lo][b-(1<<lo)+1]);
		printf("%d\n",mmax-mmin);
	}
	return 0;
}
2023/7/12 16:29
加载中...