Đường đi tránh công trường
Xem dạng PDFKhuôn viên cơ sở mới của Đại học Công nghiệp Hà Nội được quy hoạch thành một lưới ô vuông gồm ~H~ hàng và ~W~ cột. Các hàng được đánh số từ ~1~ đến ~H~ từ trên xuống dưới, các cột được đánh số từ ~1~ đến ~W~ từ trái sang phải; ô nằm ở hàng ~r~, cột ~c~ được ký hiệu là ~(r, c)~.
Cổng chính nằm ở ô ~(1, 1)~, còn thư viện nằm ở ô ~(H, W)~. Để tới thư viện nhanh nhất, sinh viên xuất phát từ cổng chính và mỗi bước chỉ đi sang phải một ô (từ ~(r, c)~ sang ~(r, c+1)~) hoặc xuống dưới một ô (từ ~(r, c)~ sang ~(r+1, c)~), không được ra ngoài lưới.
Hiện có ~k~ ô đang là công trường thi công; ô công trường thứ ~i~ là ~(r_i, c_i)~. Sinh viên không được đi vào các ô này.
Yêu cầu
Hãy đếm số đường đi khác nhau từ ô ~(1, 1)~ đến ô ~(H, W)~ mà không đi vào ô công trường nào. Hai đường đi được coi là khác nhau nếu dãy các ô mà chúng đi qua là khác nhau. Vì kết quả có thể rất lớn, chỉ cần đưa ra phần dư của nó khi chia cho ~10^9 + 7~.
Dữ liệu vào
- Dòng thứ nhất chứa ba số nguyên ~H~, ~W~ và ~k~;
- ~k~ dòng tiếp theo, dòng thứ ~i~ chứa hai số nguyên ~r_i~ và ~c_i~. Nếu ~k = 0~ thì dữ liệu chỉ có một dòng.
Kết quả ra
Ghi ra một số nguyên duy nhất là số đường đi sau khi lấy phần dư cho ~10^9 + 7~ (bằng ~0~ nếu không có đường đi nào).
Ràng buộc
~1 \le H, W \le 10^5~; ~H \cdot W \ge 2~; ~0 \le k \le 2000~; ~1 \le r_i \le H~; ~1 \le c_i \le W~; các ô công trường đôi một khác nhau, khác ô ~(1, 1)~ và khác ô ~(H, W)~.
- Subtask 1 (20% số điểm – test 01–04): ~H, W \le 1000~;
- Subtask 2 (20% số điểm – test 05–08): ~k = 0~;
- Subtask 3 (20% số điểm – test 09–12): ~k = 1~;
- Subtask 4 (40% số điểm – test 13–20): không có ràng buộc bổ sung.
Ví dụ
Dữ liệu vào mẫu 1
3 4 2
2 2
1 4
Kết quả ra mẫu 1
3
Giải thích
Lưới có ~3~ hàng, ~4~ cột; hai ô công trường là ~(2, 2)~ và ~(1, 4)~. Ký hiệu P là bước sang phải, X là bước xuống dưới. Có đúng ~3~ đường đi hợp lệ: XXPPP, PPXXP và PPXPX. Chẳng hạn đường PPXXP đi qua các ô ~(1,1) \to (1,2) \to (1,3) \to (2,3) \to (3,3) \to (3,4)~.
Bình luận