利用滑动窗口进行求解,即前后指针方法,不断进行更新 #include using namespace std;

int main()

{

int n,x;
cin>>n>>x;
int arr[n];
for(int i =0;i<n;i++) cin>>arr[i];
int left = 0,right = 0,len = -1;
int releft = 0,reright = 0,relen = 1000000;
int sum =0;
while(right < n)
{
    sum += arr[right];
    while(sum >= x)
    {
        len = right - left + 1;
        if(relen > right - left + 1)
        {
            relen = right - left +1;
            reright = right+1;
            releft = left+1;
        }
        sum -= arr[left++];
    }
    right++;
    
}
cout<<releft<<" "<<reright<<endl;    

return 0;

}