#A0103. 子序列

子序列

题目描述

有一个长度为 NN 的正整数序列 (1N107)(1 \le N \le 10^7) ,每一个数字都小于等于 10510^5,再给定一个正整数 S(S108)S(S \le 10^8),试求一个连续子序列,使得该序列的数字之和大于或等于 SS,并且要求该子序列尽量短。

输入格式

输入有多组(不超过 1010 组)数据。

每组数据第一行为两个正整数 NNSS ,中间用空格隔开。第二行给出这个序列 aia_i,每两个整数之间用空格隔开。 输入文件以 EOF 结尾。

输出格式

对于每组数据,输出一个整数,代表满足要求的最短子序列的长度。当这个连续子序列不存在时输出 0

每组数据输出占一行

10 15
5 1 3 5 10 7 4 9 2 8
5 11
1 2 3 4 5
2
3

数据规模与约定

1n107,0ai105,0<S1081 \le n \le 10^7,0 \le a_i \le 10^5,0 <S \le 10^8

subtask1subtask1: 1n103,201 \le n \le 10^3,20

subtask2subtask2: 1n1051 \le n \le 10^5, 4040 分 (二分)

subtask3subtask3: 1n1071 \le n \le 10^7, 4040 分 (尺取)

注意:输入数据规模很大,请使用快速读写方式。