//简单的滑动窗口 我现在也给出 一般做法 即 步骤
标准的滑动窗口应该是:加一个右元素 -> 满足条件时尽可能缩减左元素 -> 记录当前最优解。
#include <bits/stdc++.h> //万能头
using namespace std ;
#define int long long
signed main()
{
ios::sync_with_stdio(false),cin.tie(nullptr) ;
int n,x;
cin >> n >> x;
vector<int>a(n+2,0) ;
for(int i = 1;i <= n;i++) cin >> a[i] ;
int l = 1 ;
int r = n + 1;
int sum = 0 ;
int ll = 1;
for(int i = 1;i <= n;i++)
{
sum += a[i] ;
while(sum >= x)
{
if( (i - ll + 1) < (r - l + 1) )
{
l = ll,r = i ;
}
sum -= a[ll] ;
ll++ ;
}
}
cout << l << " " << r ;
return 0 ;
}

京公网安备 11010502036488号