[Buổi 10][Củng cố mảng một chiều][ADV] Bài 1: Xoay phải k bước
Xoay phải k bước
Bối cảnh
Một dãy cần được xoay sang phải k vị trí. Ví dụ [1,2,3,4,5] xoay phải 2 bước thành [4,5,1,2,3].
Bài này luyện ánh xạ index cũ sang index mới bằng phép chia dư.
Yêu cầu
- Đọc n, mảng và k.
- Chuẩn hóa
k %= n. - Mỗi phần tử tại index i chuyển tới
(i+k)%ntrong mảng phụ. - Sao chép/in kết quả.
Input
Dòng 1: n. Dòng 2: n số. Dòng 3: k.
Output
Một dòng là mảng sau xoay phải.
Ràng buộc
1 ≤ n ≤ 5000, 0 ≤ k ≤ 10^18.
Ví dụ 1
Input
5
1 2 3 4 5
2
Output
4 5 1 2 3
Giải thích
Index mới là (i+2)%5; phần tử 4 và 5 vòng về đầu, được 4 5 1 2 3.
Ví dụ 2
Input
4
10 20 30 40
0
Output
10 20 30 40
Giải thích
k=0 nên mọi phần tử giữ nguyên vị trí.
Thông tin học tập
- Module: M03
- Buổi: B10
- Loại bài: ADVANCED
- Độ khó: Hard
- Concepts: static arrays, cyclic rotation, auxiliary array, modular indexing
- Giới hạn kiến thức: B01-B10
- Time limit: 2 second(s)
- Memory limit: 256 MB
- Point: 100
Comments