/*
尺取法:先移动r后移动l,找到满足的区间
*/
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int INF = 0x3f3f3f3f;
const int MAXN = 1e7 + 100;
const double eps = 1e-6;
ll gcd(ll a,ll b){return b==0? a:gcd(b,a%b);}
int a[MAXN];
int main(){
int n;
scanf("%d",&n);
int x;
cin>>x;
int sum=0,l=0,r=0,tl=0,tr=0;
int res=1e7+9;
for(int i=0;i<n;i++){
scanf("%d",&a[i]);
}
while(r<n-1){
sum+=a[r++];
while(sum>=x&&l<r){
if(r-l<res){
res=r-l;
tl=l;
tr=r;
}
sum-=a[l++];
}
}
cout<<tl+1<<" "<<tr;
return 0;
}
“相关推荐”对你有帮助么?
-
非常没帮助
-
没帮助
-
一般
-
有帮助
-
非常有帮助
提交