[C10_CT_23] Bảng số

Xem dạng PDF

Gửi bài giải

Điểm: 1,00 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 256M
Input: stdin
Output: stdout

Dạng bài
Ngôn ngữ cho phép
C, C++, Java, Pascal, Python

Cho một bảng có kích thước ~m \times n~ gồm ~m~ hàng được đánh số từ ~1~ đến ~m~ theo hướng từ trên xuống dưới và ~n~ cột được đánh số từ ~1~ đến ~n~ theo hướng từ trái sang phải. Ô nằm ở hàng thứ ~i~ và cột thứ ~j~ có toạ độ là ~(i, j)~. Trên bảng này, các ô được ghi các số có giá trị từ ~1~ đến ~m \times n~ theo quy luật sau:

  • Bắt đầu từ ô ở góc trên bên trái với giá trị của ô ban đầu là ~1~.
  • Lần lượt di chuyển sang phải cho đến ô ở cột cuối cùng, sau đó di chuyển xuống dưới một ô, tiếp tục từ ô này di chuyển lần lượt sang trái cho đến ô ở cột đầu tiên, sau đó lại di chuyển xuống dưới một ô. Quá trình di chuyển cứ tiếp tục như thế cho đến ô ~(m, n)~. Biết mỗi lượt di chuyển, giá trị của ô sẽ tăng lên ~1~.

Ví dụ: Cách điền các số vào bảng kích thước ~5 \times 6~ được mô tả như sau:

Imgur

Yêu cầu

Hãy lập trình xác định giá trị tại ô ~(x, y)~ của bảng kích thước ~m \times n~.

Dữ liệu đầu vào

Gồm bốn số nguyên dương ~m,\ n,\ x,\ y~.

Dữ liệu đầu ra

Gồm một số là kết quả tìm được.

Ràng buộc dữ liệu

  • 60% số test tương ứng với 60% số điểm có ~m, n \le 10^2~.
  • 40% số test còn lại tương ứng với 40% số điểm có ~m, n \le 10^6~.

Ví dụ

Ví dụ 1
INPUT
5 6 3 4
OUTPUT
16

Bình luận

Hãy đọc nội quy trước khi bình luận.


Không có bình luận tại thời điểm này.