Two pointer 2B

Xem PDF



Tác giả:
Dạng bài
Ngôn ngữ cho phép
Assembly, Awk, C, C#, C++, Clang, Cobol, D, Groovy, Haskell, JS, Java, Kotlin, Lua, Node JS, OCaml, ObjectiveC, Output, PHP, Pascal, Perl, Prolog, Pypy, Pypy 3, Python, Ruby, Rust, Scala, Scratch, Swift
Điểm: 1000 (p) Thời gian: 1.0s Bộ nhớ: 256M Input: bàn phím Output: màn hình

Cho một mảng \(a\) gồm \(n\) số nguyên. Ta định nghĩa một đoạn con \(a[l\dots r] (1\le l \le r)\) của mảng là tốt nếu tổng các phần tử của nó ít nhất là \(s\). Nhiệm vụ của bạn là tìm đoạn con "tốt" có độ dài ngắn nhất.

Input

  • Dòng đầu tiên chứa các số \(n\)\(s (1 \le n \le 10^5, 1 \le s \le 10^{18})\)
  • Dòng thứ hai chứa các số nguyên \(a_i (1 \le a_i \le 10^9)\)

Output

  • In ra một số nguyên là độ dài của đoạn con tốt ngắn nhất. Nếu không có đoạn nào, in -1

Example

Sample input

7 20
2 6 4 3 6 8 9

Sample output

3

Nguồn: Codeforces

Bình luận (1)

Mới nhất
Tải bình luận...