Dãy số tròn

Xem PDF




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

Cho \(n\) số nguyên dương \(a_1, a_2, ..., a_n\) rải đều trên một đường tròn theo chiều kim đồng hồ. Hãy tìm cung tròn có độ dài nhỏ nhất mà tổng các số trên cung tròn lớn hơn hoặc bằng \(S\). In ra số lượng số trên cung tròn đó. Nếu không có cung tròn nào thỏa mãn thì in ra \(-1\).

Input

  • Dòng đầu tiên chứa hai số nguyên dương \(n, S \ (S \leq 10^{18})\).

  • Dòng thứ hai gồm \(n\) số nguyên dương \(a_1, a_2, ..., a_n \ (1 \leq a_i \leq 10^9)\)

Output

  • In ra độ dài cung tròn tìm được

Scoring

  • Subtask \(1\) (\(30\%\) số điểm): \(n \leq 100\)
  • Subtask \(2\) (\(30\%\) số điểm): \(n \leq 2000\)
  • Subtask \(3\) (\(40\%\) số điểm): \(n \leq 200000\)

Example

Test 1

Input
5 7
3 1 1 1 4 
Output
2
Note

chọn cung tròn \((4, 3)\)

Test 2

Input
5 6
1 1 1 1 4
Output
3
Note

chọn cung tròn \((1, 1, 4)\)

Test

Input
7 80
70 11 32 43 43 11 54
Output
2
Note

chọn cung tròn \((43, 43)\)


Bình luận

Không có bình luận nào.