Mô tả
Tại sân bay Liên Khương (Đà Lạt), một chiếc màn hình LED hiển thị mã chuyến bay bỗng nhiên trục trặc. Bảng chữ điện tử tự động cuộn dòng mã, khiến các ký tự bị trượt sang phải một số vị trí nhất định, làm hành khách khó nhìn thông tin.
May mắn thay, đội ngũ kỹ thuật viên đã ghi nhận lại danh sách mã chuyến bay ở trạng thái bị trượt. Để kiểm tra bộ lọc lỗi của hệ thống mới, bạn được giao nhiệm vụ viết một hàm khôi phục lại danh sách ban đầu.
Cụ thể hơn, bạn sẽ nhận một mảng số nguyên (biểu diễn các mã chuyến bay) và một giá trị độ lệch k. Mỗi khi màn hình trượt sang phải 1 bước, phần tử cuối cùng của mảng sẽ được đẩy lên vị trí đầu tiên. Nếu màn hình trượt sang trái 1 bước, phần tử đầu tiên sẽ dời xuống cuối mảng.
Nhiệm vụ của bạn: cho mảng arr và số nguyên k, hãy xác định trạng thái mảng ban đầu trước khi màn hình trượt k bước.
Đầu vào
Dòng đầu tiên chứa số nguyên n và k, tương ứng là số lượng phần tử và độ lệch thực hiện (, ). Nếu k dương nghĩa là màn hình đã trượt sang phải k bước, nếu âm nghĩa là trượt sang trái.
Dòng thứ hai chứa n số nguyên biểu diễn mảng hiện tại, mỗi số có .
Đầu ra
In ra n số nguyên là mảng ở trạng thái ban đầu trước khi trượt, cách nhau bởi khoảng trắng.
Ràng buộc
- , nếu trượt phải, trượt trái.
Ví dụ
Ví dụ 1
Đầu vào:
4 1 1 2 3 4
Đầu ra:
4 1 2 3
Giải thích: Màn hình trượt sang phải 1 bước từ ban đầu. Để đảo ngược, ta phải trượt ngược lại sang trái 1 bước. Mảng [1, 2, 3, 4] trượt trái 1 bước thành [4, 1, 2, 3].
Ví dụ 2
Đầu vào:
3 2 100 200 300
Đầu ra:
200 300 100
Giải thích: Trượt sang phải 2 bước từ ban đầu. Để hoàn tác, trượt trái 2 bước từ mảng [100, 200, 300] được [200, 300, 100].