trang chủ / đề bài / hp_ts10_26_c

Dãy con ngắn nhất

Đề bài

Mô tả

Dãy số a1,a2,…,an được lập theo qui tắc sau: a1=x, a2=y, ak=(ak−1+ak−2)modM với mọi k=3,4,…,n. Ở đây phép toán pmodq là phép lấy phần dư khi chia p cho q (phép % trong ngôn ngữ C++ và Python).

Cho số nguyên dương S.

Yêu cầu: Hãy tìm dãy con ai,ai+1,…,aj có số lượng phần tử nhỏ nhất sao cho: ai+ai+1+…+aj≥S.

Dữ liệu vào

Một dòng duy nhất chứa 5 số nguyên n,x,y,M,S cách nhau bằng khoảng trống.

Dữ liệu ra

Một số nguyên duy nhất là số lượng phần tử của dãy con tìm được. Nếu không tồn tại dãy con thoả mãn thì in −1.

Ràng buộc

  • 2≤n≤2×105.
  • 1<M≤104.
  • 0≤x,y<M.
  • 1≤S≤1015.

Subtasks

  • Subtask 1 (40% số điểm): n≤300.
  • Subtask 2 (30% số điểm): n≤5000.
  • Subtask 3 (30% số điểm): không có ràng buộc gì thêm.

Ví dụ

Input Output Giải thích
10 1 1 7 19 5 Dãy số được tạo ra là 1,1,2,3,5,1,6,0,6,6. Dãy con ngắn nhất có tổng lớn hơn hoặc bằng 19 là 1,6,0,6,6.
6 0 3 5 10 4 (Ví dụ bổ sung.) Dãy số là 0,3,3,1,4,0. Dãy con ngắn nhất có tổng không nhỏ hơn 10 là 3,3,1,4 (tổng 11).

Bình luận

Không có bình luận tại thời điểm này.

gnatmake 12.2.0 a68g 3.1.2 nasm 2.16.1 as_x64 2.47 awk 1.3.4 gcc 16.2.0 dotnet 10.0.402 g++ 16.2.0 g++-themis 16.2.0 g++17 16.2.0 g++20 16.2.0 g++23 16.2.0 clang++ 22.1.8 dmd 2.113.0 dart 3.13.6 gforth 0.7.3 gfortran 15.3.0 go 1.27.3 groovyc 5.1.3 javac 26.0.2.1 node 26.12.1 julia 1.13.2 kotlinc 2.4.21 lean 4.35.0 sbcl 2.2.9 lua 5.5.1 nim 2.2.12 fpc 3.2.2 fpc-themis 3.2.2 perl 5.42.3 php 8.5.12 pike 8.0 swipl 9.0.4 pypy3 7.3.23 python3 3.15.1 racket 8.7 ruby 4.0.8 rustc 1.99.1 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 swiftc 6.4.1 tclsh 8.6 bun 1.4.4 deno 2.9.8 v 0.5.2 zig 0.17.0