trang chủ / bài tập / twoarrays

Hai mảng

Đề bài

Mô tả

Cho hai mảng a1,a2,,anb1,b2,,bm, trong đó mảng b tăng ngặt (bi<bi+1 với mọi i từ 1 đến m1).

Bạn cần chia mảng a thành m mảng con liên tiếp và khác rỗng sao cho với mọi i từ 1 đến m, giá trị nhỏ nhất của mảng con thứ i đúng bằng bi. Mỗi phần tử thuộc đúng một mảng con: một số phần tử đầu tiên của a tạo thành mảng con thứ nhất, một số phần tử tiếp theo tạo thành mảng con thứ hai, và cứ thế tiếp tục.

Ví dụ, nếu a=[12,10,20,20,25,30]b=[10,20,30] thì có đúng hai cách chia hợp lệ:

  1. [12,10,20], [20,25], [30];
  2. [12,10], [20,20,25], [30].

Hãy đếm số cách chia mảng a. Vì kết quả có thể rất lớn, hãy in ra phần dư của nó khi chia cho 998244353.

Dữ liệu vào

  • Dòng đầu tiên chứa hai số nguyên nm — độ dài của mảng a và mảng b.
  • Dòng thứ hai chứa n số nguyên a1,a2,,an.
  • Dòng thứ ba chứa m số nguyên b1,b2,,bm.

Dữ liệu ra

In ra một số nguyên duy nhất — số cách chia mảng a, lấy phần dư khi chia cho 998244353.

Ràng buộc

  • 1n,m2·105
  • 1ai109
  • 1bi109
  • bi<bi+1 với mọi i từ 1 đến m1

Ví dụ

Input Output Giải thích
6 3
12 10 20 20 25 30
10 20 30
2 Hai cách chia được liệt kê ở phần mô tả. Mảng con thứ ba buộc phải là [30], còn ranh giới giữa hai mảng con đầu có hai vị trí.
8 2
1 2 2 2 2 2 2 2
1 2
7 Mảng con thứ nhất phải chứa phần tử 1 nên nó bắt đầu từ vị trí 1; mảng con thứ hai có thể bắt đầu tại bất kỳ vị trí nào trong 2,3,,8, cho 7 cách.
4 2
1 3 3 7
3 7
0 Giá trị nhỏ nhất của toàn mảng a1, nhưng min(b1,b2)=3, nên không có cách chia nào hợp lệ.

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.400 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.2 gforth 0.7.3 gfortran 12.2.0 go 1.27.0 groovyc 5.1.1 javac 25.0.4 node 26.8.1 julia 1.12.7 kotlinc 2.4.10 lean 4.33.1 sbcl 2.2.9 lua 5.4.9 nim 2.2.10 fpc 3.2.2 fpc-themis 3.2.2 perl 5.36.0 php 8.5.10 pike 8.0 swipl 9.0.4 pypy3 7.3.23 python3 3.14.7 racket 8.7 ruby 4.0.6 rustc 1.98.0 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 swiftc 6.3.3 tclsh 8.6 bun 1.4.0 deno 2.9.6 v 0.5.2 zig 0.16.0