Trại hè Hùng Vương 2024 - Thứ tự từ điển

Xem dạng PDF

Gửi bài giải

Điểm: 25,00 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 1G
Input: stdin
Output: stdout

Dạng bài
Ngôn ngữ cho phép
C, C++, Java, Output Only, Pascal, PyPy, Python, Scratch, TEXT

Trong trường hợp đề bài hiển thị không chính xác, bạn có thể tải đề bài tại đây: Đề bài

Thứ tự từ điển trên dãy số được định nghĩa như sau: Dãy ~A = (a_1, a_2, ..., a_n)~ được gọi là có thứ tự từ điển nhỏ hơn dãy ~B = (b_1, b_2, ..., b_n)~ nếu tồn tại một chỉ số ~i~ (~1 \le i \le n~) sao cho: ~a_1 = b_1, a_2 = b_2, ..., a_{i-1} = b_{i-1}~ và ~a_i < b_i~.

Ví dụ: ~A = (1, 4, 5, 3), B = (1, 5, 4, 3)~ thì ~A < B~ vì ~a_1 = b_1, a_2 < b_2~.

Cho một dãy số nguyên dương ~X~ gồm ~n~ phần tử ~(X_1, X_2, ..., X_n)~. Với ~i = 1, 2, ..., n-1~, gọi ~swap(i)~ là thao tác đổi chỗ hai phần tử ~X_i~ và ~X_{i+1}~ cho nhau.

Ví dụ: ~X = (1, 4, 5, 3)~, sau khi thực hiện thao tác ~swap(1)~ thì dãy ~X~ trở thành ~(4, 1, 5, 3)~. Tiếp theo sử dụng thao tác ~swap(3)~ thì dãy trở thành ~(4, 1, 3, 5)~.

Yêu cầu: Cho dãy ~X~ và số nguyên dương ~k~, xác định dãy số có thứ tự từ điển nhỏ nhất sau khi thực hiện tối đa ~k~ thao tác đổi chỗ trên dãy ~X~.

Input

  • Dòng ~1~ chứa hai số nguyên dương ~n, k~ (~1 \le n \le 10^5; k \le 2 \times 10^9~).
  • Dòng ~2~ chứa ~n~ số nguyên ~X_1, X_2, ..., X_n~ (~1 \le X_i \le 10^6, \forall i = 1, 2, ..., n~).

Các số trên cùng một dòng cách nhau một khoảng trắng.

Output

  • Dãy ~X_1, X_2, ..., X_n~ có thứ tự từ điển nhỏ nhất sau khi thực hiện tối đa ~k~ thao tác đổi chỗ.

Sample Input 1

4 2
4 3 2 1

Sample Output 1

2 4 3 1

Sample Input 2

4 4
4 3 2 1

Sample Output 2

1 3 4 2

Subtasks

Subtask Điểm Ràng buộc
1 ~35~ ~n \le 1000, k = 1~.
2 ~35~ ~n \le 1000, k \le 10^6~.
3 ~30~ Không có ràng buộc gì thêm.

Bình luận

Hãy đọc nội quy trước khi bình luận.


Không có bình luận tại thời điểm này.