Time Limit: 1000MS | Memory Limit: 65536K | |
Total Submissions: 12982 | Accepted: 5491 |
Descriptionjava
Inputless
Outputspa
Sample Inputcode
2 10 15 5 1 3 5 10 7 4 9 2 8 5 11 1 2 3 4 5
Sample Outputblog
2 3
思路:尺取法操做連續子段和問題。
import java.util.Scanner; public class Main { Scanner in = new Scanner(System.in); final int MAXN = 100005; int n, s; int[] a = new int[MAXN]; public Main() { int T = in.nextInt(); while(T-- != 0) { n = in.nextInt(); s = in.nextInt(); for(int i = 0; i < n; i++) { a[i] = in.nextInt(); } int front = 0, rear = 0; int sum = 0; int res = n; while(true) { while(rear < n && sum < s) { sum += a[rear++]; } if(sum >= s) { res = Math.min(res, rear-front); } else { break; } if(front < rear && sum>=s) { sum -= a[front++]; } } if(res != n) { System.out.println(res); } else { System.out.println(0); } } } public static void main(String[] args) { new Main(); } }