Để thử nghiệm một xe tự hành, người ta tiến hành một thí nghiệm cho xe vượt qua các chướng ngai vật và đi đến đích. Có thể mô tả thí nghiệm này như sau:
Có một lưới ô vuông kích thước ~ m × n ~, các hàng đánh số từ 1 đến ~ m ~ từ trên xuống dưới và các cột đánh số từ 1 đến ~ n ~ từ trái qua phải; ô nằm ở giao của hàng ~ i ~ với cột ~ j ~ ký hiệu là ~ (i, j) ~. Trên một số ô có vật cản không thể đi qua được, các ô còn lại không có vật cản. Xe tự hành xuất phát từ ô ~ (1,1) ~. Mỗi bước nó chỉ có thể di chuyển đến ô chung cạnh ở bên phải hoặc bên dưới nếu như các vị trí này còn nằm trong lưới và không có vật cản. Chính xác hớn từ ô ~ (i,j) ~ xe chỉ có thể di chuyển đến ô ~ (i, j+1) ~ hoặc ~ (i+1, j) ~ nếu như các ô này còn trong lưới và không có vật cản. Xe tự hành cần di chuyển đến ô ~ (m,n) ~.
Viết chương trình đếm xem có bao nhiêu cách khác nhau để di chuyển xe tự hành từ ô ~ (1,1) ~ đến ô ~ (m,n) ~ theo các qui tắc trên? Hai cách đi được coi là khác nhau nếu như có ít nhất một ô có trên hành trình của cách đi này nhưng không có trên hành trình của cách đi kia.
Dữ liệu vào
Kết quả
Ghi một số nguyên duy nhất là số lượng cách di chuyển khác nhau của xe tự hành từ ô ~ (1,1) ~ đến ô ~ (m, n) ~. Vì con số này có thể rất lớn nên chỉ cần in ra phần dư của nó khi chia cho ~ 10^9 + 7 ~.
Ràng buộc
Ví dụ:
Input 1
3 4 2
2 2
2 3
Output 1
2
Code tích cực |
---|
Trong 24h |
|
Trong 7 ngày |
Trong 30 ngày |
Thống kê |
---|
AC/Sub: 97887/180710 Pascal: 17121 C++: 130348 Python: 33199 Lượt xem/tải tests: 37787 |