AcWing 6096. 参加比赛2
原题链接
中等
作者:
Yuze_Neko
,
2025-01-13 12:46:47
,
所有人可见
,
阅读 7
双指针 + 浅醉和
算法1
(双指针) $O(n)$
时间复杂度
C++ 代码
#include <bits/stdc++.h>
using namespace std;
int n, t;
vector<int> a;
int main()
{
cin >> n >> t;
a.resize(n + 1);
a[0] = 0;
for(int i = 1; i <= n; i ++)
{
int temp;
cin >> temp;
a[i] = temp + a[i - 1];
}
int max_ = -0x3f3f3f3f;
for(int quick = 1,slow = 0;slow <= n;)
{
if(a[quick] - a[slow] <= t && quick <= n)
{
max_ = max(max_,quick - slow);
quick ++;
}
else
{
slow ++;
quick -= 1;
}
}
cout << max_;
return 0;
}