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:
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