코딩테스트/백준

[골5] 1806 - 부분합

ShovelingLife 2023. 10. 10. 23:30
#include <iostream>
#include <algorithm>
#include <vector>

using namespace std;

#define MAX 987654321

int main()
{
	int n, r;
	cin >> n >> r;
	vector<int> v(100001);

	for (int i = 0; i < n; i++)
		cin >> v[i];

	int s = 0, e = 0, res = MAX;
	int sum = v[0];

	while (true)
	{
		if (sum >= r)
		{
			res = min(res, e - s + 1);
			sum -= v[s++];
		}
		else
		{
			if (++e == n)
				break;

			sum += v[e];
		}
	}
	cout << (res == MAX ? 0 : res);
	return 0;
}