Toggle menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

Subsequence/권영기

From ZeroWiki
Revision as of 11:14, 14 January 2013 by imported>trailblaze
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
#include<iostream>
#include<vector>
using namespace std;
vector <int> e, sum;
int main(void)
{
	int n, s;
	int l, h, m, i, ans = 100020;
	bool flag = false;
	cin>>n>>s;
	e.resize(n + 5);
	sum.resize(n + 5);

	for(i = 1; i<=n; i++){
		cin>>e[i];
		sum[i] = sum[i-1] + e[i];
	}

	l = 0, h = n;
	while(l <= h){
		flag = false;
		m = (l + h) / 2;
		for(i = m; i<=n; i++){
			if(sum[i] - sum[i - m] >= s) {
				flag = true;
				if(ans > m)ans = m;
				break;
			}
		}
		if(!flag)l = m + 1;
		else h = m - 1;
	}
	if(ans == 100020)ans = 0;
	cout<<ans;
	return 0;
}