Tính giao điểm

View as PDF

Submit solution

Points: 200.00 (partial)
Time limit: 1.0s
Memory limit: 1G
Input: stdin
Output: stdout

Author:
Problem type
Allowed languages
C, C++, GAS64, Pascal, Perl, PHP, Python, Sed, TCL, Text

Cho một hình chữ nhật có kích thước ~MxN~ (~M, N<=1000~). Hình chữ nhật đó được chia thành ~MxN~ ô vuông bởi các đường thẳng song song với các cạnh của hình chữ nhật (hình chữ nhật khi đó có ~M~ dòng và ~N~ cột). Thứ tự các dòng được đánh số từ ~1~ đến ~M~ từ trên xuống dưới, thứ tự các cột được đánh số thừ ~1~ đến ~N~ từ trái sang phải. Khi đó ta nói ô có toạ độ ~(i,j)~ là ô nằm ở trên dòng ~i~ và cột ~j~. Hình chữ nhật này có 2 đường chéo, đường chéo 1 nối ô ~(1,1)~ với ô ~(M,N)~, đường chéo 2 nối ô ~(M,1)~ với ô ~(1,N)~. Một ô của hình chữ nhật gọi là bị cắt bởi một đường chéo nếu nó có từ hai điểm chung với đường chéo đó trở lên.

Với mỗi bộ ba số ~M, N, K~ cho trước trong đó ~M, N~ là kích thước hình chữ nhật, còn ~k = 1~, 2 là tên đường chéo của hình chữ nhật. Hãy thông báo số ô của hình chữ nhật và toạ độ của các ô đó mà bị cắt bởi đường chéo.

Dữ liệu vào gồm một bộ 3 số ~M, N, K~ mỗi số cách nhau ít nhất một dấu cách.

Kết quả ghi thông tin ra được ghi trên 2 dòng, dòng thứ nhất ghi số ô bị cắt, dòng thứ 2 ghi toạ độ các ô bị cắt theo thứ tự tăng dần của chỉ số dòng, chỉ số cột của các ô.

Ví dụ:
INPUT
3 4 1
OUTPUT
6
(1,1)  (1,2)  (2,2)  (2,3)  (3,3)  (3,4)

Comments

Please read the guidelines before commenting.


There are no comments at the moment.