[Buổi 10][Củng cố mảng một chiều][ADV] Bài 1: Xoay phải k bước


LÀM BÀI

Points: 100
Time limit: 2.0s
Memory limit: 256M

Author:
Problem types
Allowed languages
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

  1. Đọc n, mảng và k.
  2. Chuẩn hóa k %= n.
  3. Mỗi phần tử tại index i chuyển tới (i+k)%n trong mảng phụ.
  4. 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

There are no comments at the moment.

Zalo