Xét bảng hình chữ nhật kích thước m x n ô. Các hàng được đánh số từ 1 đến m từ trên xuống dưới, các cột được đánh số từ 1 đến n từ trái qua phải. Ô nằm trên hàng i và cột j được ghi một số nguyên không âm ký hiệu Cij. Ở góc trên trái bảng có một quân cờ. Ta phải chuyển quân cờ về ô dưới phải của bảng theo quy tắc sau:
- Tại mỗi bước nhảy, chỉ được di chuyển sang phải trên cùng một hàng hoặc di chuyển xuống dưới theo cùng một cột
- Kích thước bước nhảy không được vượt quá số ghi trên ô có quân cờ hiện tại
- Chỉ được di chuyển trong phạm vi bảng đang xét
Kích thước của bước nhảy từ ô (i, j) tới ô (u, v) được tính bằng giá trị u + v - i - j .
Yêu cầu: Cho dãy a1, a2,…,am, b1, b2,…, bn và số nguyên dương k. Bảng kích thước m x n được xác định với:
Cij = 1 + [(ai + bj) mod k]
Hãy tính số lượng cách di chuyển quân cờ từ ô trên trái (1 , 1) xuống ô dưới phải (m, n).
Dữ liệu vào :
- Dòng đầu chứa 3 số nguyên dương m, n, k ( m, n, k <= 4. 10^3)
- Dòng thứ hai chứa m số nguyên a1, a2, …, am (0 <= ai <= 1e9)
- Dòng thứ ba chứa n số nguyên b1, b2, …, bn (0 <= bi <=1e9)
Kết quả: Một số nguyên duy nhất là số cách di chuyển tìm được lấy theo module 1e9 + 7 .
Ví dụ:
INPUT:
3 2 2
3 4 11
2 5
OUTPUT:
4
Ràng buộc:
- 70 % số test có m, n <= 1e3
- 30% số test còn lại tương ứng 30% số điểm không có ràng buộc gì thêm
Cho em hỏi thuật toán bài này được không ạ . Em cảm ơn nhiều ạ!