Submit solution
Points:
0.65 (partial)
Time limit:
0.38s
Memory limit:
512M
Input:
stdin
Output:
stdout
Problem type
Allowed languages
C, C++, Java, Kotlin, Pascal, PyPy, Python, Scratch
Cho ~N~ hình chữ nhật trên mặt phẳng. Các cạnh hình chữ nhật song song với các trục tọa độ. Những hình chữ nhật này có thể gối lên nhau, trùng hoặc là bên trong nhau. Đỉnh của chúng có tọa độ nguyên, hoành độ ~x~ không vượt quá ~xmax~ và tung độ ~y~ không vượt quá ~ymax~.
Một đoạn thẳng có một đầu là điểm ~A~ (~0~, ~0~) và đầu kia là điểm ~B~. Điểm ~B~ thỏa mãn các điều kiện sau:
- Các tọa độ của ~B~ là những số nguyên.
- Điểm ~B~ thuộc đoạn ~[(0, y_{max})~, ~(x_{max}, y_{max})]~ hoặc đoạn ~[(x_{max}, 0)~, ~(x_{max}, y_{max})]~.
Viết chương trình tìm một điểm ~B~ sao cho đoạn ~AB~ cắt qua nhiều hình chữ nhật nhất. (~AB~ cắt ~1~ hình chữ nhật khi chúng có ít nhất ~1~ điểm chung với nhau).
Input
- Dòng đầu chứa ~3~ số nguyên ~x_{max}, y_{max}~ ~(0 < x_{max}, y_{max} < 10^{9})~ và ~N~ (~1 \le N \le 10000~).
- Mỗi dòng trong ~N~ dòng tiếp theo chứa ~4~ số nguyên: ~x_1~, ~y_1~, ~x_2~, ~y_2~. ~(x_1~, ~y_1)~ là tọa độ đỉnh trái dưới, ~(x_2~, ~y_2)~ là tọa độ đỉnh phải trên của hình chữ nhật tương ứng.
Output
Dòng duy nhất ghi số lượng lớn nhất các hình chữ nhật cắt được.
Sample Input
22 14 8
1 8 7 11
18 10 20 12
17 1 19 7
12 2 16 3
16 7 19 9
8 4 12 11
7 4 9 6
10 5 11 6
Sample Output
5
Comments