Một khu vườn có thể xem như một lưới hình chữ nhật có kích thước \(N \times M\). Các dòng được đánh số từ \(1\) đến \(N\), các cột được đánh số từ \(1\) đến \(M\). Giao điểm giữa dòng \(i\) (\(1 \le i \le N\)) và cột \(j\) (\(1 \le j \le M\)) là ô \((i,j)\), và người ta muốn trồng hoa trên khu vườn này.
Trên khu vườn đã lắp đặt sẵn \(Q\) máy phun nước và \(K\) máy phun phân vi sinh. Một ô có thể chứa đồng thời nhiều máy phun nước và phân vi sinh.
- Một máy phun nước khi được đặt ở ô \((x, y)\) sẽ tưới nước cho mọi ô \((i,j)\) thỏa mãn \(x \le i\) và \(y \le j\).
- Một máy phun phân vi sinh khi được đặt ở ô \((z, w)\) sẽ tưới phân vi sinh cho mọi ô \((i,j)\) thỏa mãn \(i \le z\) và \(j \le w\).
Một ô trong khu vườn có thể trồng hoa khi ô đó được tưới cả nước và phân vi sinh.
Người ta muốn chọn các khu đất hình chữ nhật có các cạnh song song với biên của khu vườn thỏa mãn điều kiện để trồng hoa.
Yêu cầu: Cho kích thước khu vườn \(N \times M\), vị trí của \(Q\) máy phun nước và \(K\) máy phun phân vi sinh, hãy tính số lượng các khu đất hình chữ nhật có thể chọn để trồng hoa.
Input
- Dòng đầu tiên chứa bốn số \(N, M, Q, K\) (\(1 \le Q, K \le 3 \times 10^5\); \(Q, K \le N \times M\), \(1 \le N, M \le 10^9\)).
- \(Q\) dòng tiếp theo, mỗi dòng chứa hai số \(x, y\) là vị trí của một máy phun nước.
- \(K\) dòng tiếp theo, mỗi dòng chứa hai số \(z, w\) là vị trí của một máy phun phân vi sinh.
Output
- Một dòng ghi một số nguyên là kết quả của bài toán sau khi chia lấy dư cho \(10^9 + 7\).
Example
Test 1
Input
3 3 2 1
1 2
2 1
3 2
Output
12
Scoring
- 20% số tests tương ứng với 20% điểm của bài có: \(N, M \le 100\);
- 20% số tests khác tương ứng với 20% điểm của bài có: \(N, M \le 4000\);
- 20% số tests khác tương ứng với 20% điểm của bài có: \(N \le 4000\);
- 20% số tests khác tương ứng với 20% điểm của bài có: \(N \le 3 \times 10^5\);
- 20% số tests còn lại tương ứng với 20% điểm của bài có không có ràng buộc gì thêm.
Bình luận
Đăng nhập để bình luận
Chưa có bình luận nào.