trang chủ / đề bài / duffbeach

Duff trên bãi biển

Đề bài

Mô tả

Cho mảng a gồm n số nguyên dương a0,a1,…,an−1. Từ mảng a ta dựng mảng b gồm l phần tử theo quy tắc

bi=aimodnvới 0≤i<l,

nghĩa là mảng a được lặp lại tuần hoàn cho tới khi thu đủ l phần tử.

Xem mỗi phần tử bi thuộc khối mang số ⌊i/n⌋ (khối 0 gồm n phần tử đầu, khối 1 gồm n phần tử tiếp theo, v.v.).

Hãy đếm số dãy con bi1,bi2,…,bix (với 0≤i1<i2<⋯<ix<l) thỏa mãn đồng thời:

  • 1≤x≤k;
  • hai phần tử liên tiếp thuộc hai khối khác nhau và tăng dần: ⌊ij/n⌋<⌊ij+1/n⌋ với mọi 1≤j≤x−1;
  • giá trị không giảm: bij≤bij+1 với mọi 1≤j≤x−1.

Hai dãy con được coi là khác nhau nếu tập chỉ số {i1,…,ix} khác nhau. Vì kết quả có thể rất lớn, hãy in ra phần dư của nó khi chia cho 109+7.

Dữ liệu vào

  • Dòng đầu chứa ba số nguyên n, l, k.
  • Dòng thứ hai chứa n số nguyên a0,a1,…,an−1.

Dữ liệu ra

  • Một số nguyên duy nhất: số dãy con thỏa mãn, lấy phần dư khi chia cho 109+7.

Ràng buộc

  • 1≤n, k và n×k≤106.
  • 1≤l≤1018.
  • 1≤ai≤109 với mọi 0≤i≤n−1.

Ví dụ

Input Output Giải thích
5 10 3
1 2 3 4 5
25 b=[1,2,3,4,5, 1,2,3,4,5] gồm 2 khối. Có 10 dãy con độ dài 1 (mỗi phần tử) và 15 dãy con độ dài 2 (một phần tử khối 0 ghép với một phần tử khối 1 có giá trị không nhỏ hơn). Không có dãy độ dài 3 vì chỉ có 2 khối. Tổng cộng 10+15=25.
3 5 3
5 9 1
10 b=[5,9,1, 5,9] gồm khối 0={5,9,1} và khối 1={5,9}. Có 5 dãy con độ dài 1 và 5 dãy con độ dài 2 (ví dụ 5→5, 5→9, 1→5, 1→9, 9→9). Tổng cộng 10.

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