为啥RE
查看原帖
为啥RE
964876
_maple_leaf_楼主2024/1/8 14:53

code问题

#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N=1e4+10;
int n,L,q;
int a[N];
bool check(int mid,int x,int y){
//	cout<<2;
	int t=x,ret=0;
	while(t<y){
		int sum=0;
		int j=t;
		while(sum+abs(a[j]-a[j+1])<=L)sum += llabs(a[j]-a[++j]);
		ret++,t=j;
//		cout<<a[i]<<" "<<a[i+1]<<endl; 
	}if(ret<=mid)return 1;
	else return 0;
}
signed main(){
	cin>>n;
	for(int i=1;i<=n;i++)cin>>a[i];
	cin>>L>>q;
	for(int i=1;i<=q;i++){
		int x,y;
		cin>>x>>y;
//		cout<<endl;
		if(a[x]>a[y])swap(x,y);
		int l=1,r=y-x;
		while(l<r){
//			cout<<1;
			int mid=(l+r)>>1;
			if(check(mid,x,y))r=mid;
			else l=mid+1;
//			cout<<l<<" "<<r<<endl;
		}cout<<l<<endl;
	}
	return 0;
}
2024/1/8 14:53
加载中...