Trò chơi 3
Cho một bảng vuông kích thước , là số lẻ. Các hàng của bảng được đánh số từ tới , từ trên xuống dưới; các cột của bảng được đánh số từ tới , từ trái sang phải. Ban đầu, các số từ đến được ghi vào bảng này lần lượt từ trái sang phải, từ trên xuống dưới. Khi thì bảng vuông sẽ có dạng như sau:
| 1 | 2 | 3 | 4 | 5 |
| 6 | 7 | 8 | 9 | 10 |
| 11 | 12 | 13 | 14 | 15 |
| 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 |
Luật chơi: Có lượt chơi, mỗi lượt chơi quản trò sẽ cấp cho người chơi thông tin là ba số nguyên (; ). Người chơi cần đưa số nguyên đến vị trí hàng cột với số lần dịch bảng nhỏ nhất bằng cách sau:
- Dịch các số trên hàng chứa số sang phải hoặc sang trái một ô theo vòng tròn cho đến khi số nằm trên cột ;
- Dịch các số trên cột lên trên hoặc xuống dưới một ô theo vòng tròn cho đến khi số nằm trên hàng ;
Mỗi thao tác dịch hàng hoặc cột như trên được tính là một lần dịch bảng. Bảng đầu tiên của lượt chơi sau chính là bảng kết thúc của lượt chơi trước.
Cho thông tin của lượt chơi. Hãy lập trình đưa ra số lần dịch bảng nhỏ nhất tìm được tương ứng với mỗi lượt.
Dữ liệu vào
- Dòng đầu tiên chứa hai số nguyên dương (; );
- dòng sau, mỗi dòng chứa ba số nguyên dương (; ) mô tả thông tin của một lượt chơi.
Dữ liệu ra
Gồm dòng, dòng thứ tương ứng là số lần dịch bảng nhỏ nhất tìm được trong lượt chơi thứ .
Ràng buộc
- , là số lẻ
- ;
- 40% số test: ;
- 40% số test: ;
- 20% số test: không có ràng buộc gì thêm.
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 5 3 17 2 5 5 4 2 18 1 1 |
4 2 4 |
Lượt chơi đầu tiên: dịch số đến hàng cột cần lần dịch. Lượt chơi thứ hai: cần lần dịch bảng. Lượt chơi thứ ba: cần lần dịch bảng. |
Bình luận