Cắt bánh

Xem PDF




Tác giả:
Dạng bài
Ngôn ngữ cho phép
Assembly, Awk, C, C#, C++, Clang, Cobol, D, Groovy, Haskell, JS, Java, Kotlin, Lua, Node JS, OCaml, ObjectiveC, Output, PHP, Pascal, Perl, Prolog, Pypy, Pypy 3, Python, Ruby, Rust, Scala, Scratch, Swift
Điểm: 1600 (p) Thời gian: 2.0s Bộ nhớ: 1G Input: bàn phím Output: màn hình

Trong ngày sinh nhật của bé Bông, mẹ em đã mua tặng em một chiếc bánh hình chữ nhật \(M \times N\) mảnh bánh con. Bông đã đưa ra một cách cắt bánh như sau: Mỗi người sẽ chọn một mảnh bánh hình chữ nhật của mình (có các cạnh song song với chiếc bánh ban đầu, chứa nguyên các mảnh bánh con), sau đó sẽ cắt mảnh bánh đó nhưng chưa lấy bánh ra. Sau khi tất cả mọi người đã cắt bánh xong, Bông muốn biết là mảnh bánh ban đầu đã được cắt thành bao nhiêu phần.

Ví dụ: Chiếc bánh có kích thước \(3 \times 5\), có ba người sẽ cắt bánh và kết quả là sẽ nhận được \(6\) phần bánh.

Yêu cầu: Cho kích thước bánh ban đầu và các mảnh bánh sẽ được cắt. Bạn hãy lập trình giúp bé Bông đếm xem sẽ nhận được bao nhiêu phần bánh.

Input

Dữ liệu gồm nhiều bộ test, mỗi bộ test có dạng:

  • Dòng đầu gồm hai số nguyên dương \(M, N\).
  • Dòng tiếp theo là một số nguyên dương \(K\) (\(K \le 50\)), là số người tham gia cắt bánh.
  • \(K\) dòng sau, mỗi dòng \(4\) số \(x_1, y_1, x_2, y_2\) mô tả các mảnh bánh của từng người (\(0 \le x_1, x_2 \le N; 0 \le y_1, y_2 \le M\)).
  • Kết thúc file khi \(M, N\) bằng \(0\).

Output

  • Gồm nhiều dòng, mỗi dòng một số là số phần bánh nhận được tương ứng với dữ liệu vào.

Example

Test 1

Input
3 5
3
1 1 3 2
4 0 2 3
4 0 5 1
6 6
2
2 0 5 3
3 1 4 2
0 0
Output
6
3

Scoring

  • Subtask \(1\) (\(50\%\) số điểm): \(M, N \le 100\).
  • Subtask \(2\) (\(50\%\) số điểm): \(M, N \le 10^6\).

Nguồn: 3D'17

Bình luận

Mới nhất
Tải bình luận...

Không có bình luận nào.