DSL_3_A: The Smallest Window I

http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=DSL_3_A
単なる尺取虫法で済みます。
簡単な問題なのになぜか正答者数が少ないですね。
問題が追加されたことに皆さん気付いてないようです。

#include<stdio.h>
int main(){
	int n,s;
	scanf("%d %d",&n,&s);
	int as[100001];
	for(int i=0;i<n;i++){
		scanf("%d",&as[i]);
	}
	int L=0,R=0,sum=0,ans=0;
	while(1){
		while(R<n){
			sum+=as[R];
			if(s<=sum)break;
			R++;
 		}
		if(n<=R)break;
		while(L<=R){
			int sum1=sum-as[L];
			if(sum1<s)break;
			sum=sum1;
			L++;
		}
		int d=R-L+1;
		if(ans==0){
			ans=d;
		}else if(d<ans){
			ans=d;
		}
		R++;
	}
	printf("%d\n",ans);
}
最終更新:2016年11月05日 09:11