Sắp xếp

Xem PDF



Tác giả:
Dạng bài
Ngôn ngữ cho phép
Assembly, Awk, C, C#, C++, Clang, Cobol, D, Groovy, Haskell, JS, Java, Kotlin, Lua, Node JS, OCaml, ObjectiveC, Output, PHP, Pascal, Perl, Prolog, Pypy, Pypy 3, Python, Ruby, Rust, Scala, Scratch, Swift
Điểm: 1800 (p) Thời gian: 1.0s Bộ nhớ: 512M Input: bàn phím Output: màn hình

Cho dãy số \(a\) gồm \(n\) số nguyên không âm. Bạn được thực hiện thao tác: đổi chỗ hai vị trí liên tiếp trong mảng \(a\) không quá \(k\) lần. Hãy tìm cách đổi để thu được dãy có thứ tự từ điển lớn nhất.

Input

  • Dòng đầu tiên chứa hai số \(n, k\): độ dài dãy và số thao tác cho phép \((1 \le n \le 10^5, 0 \le k \le 5\cdot 10^9)\).
  • Dòng tiếp theo chứa \(n\) số nguyên không âm \(a_1, a_2, a_3, \dots, a_n\) \((0 \le a_i \le 10^9)\).

Output

  • Dòng duy nhất chứa dãy \(a\) sau biến đổi mà có thứ tự từ điển lớn nhất.

Scoring

  • Subtask \(1\) (\(25\%\) số điểm): \(n \le 5000\).
  • Subtask \(2\) (\(75\%\) số điểm): \(n \le 10^5\).

Example

Test 1

Input
4 2
1 3 2 4
Output
3 2 1 4 
Note
  • Mảng lúc đầu là \([1, 3, 2, 4]\).
  • Đổi chỗ \(1\)\(2\) được \([3, 1, 2, 4]\).
  • Đổi chỗ \(2\)\(3\) được \([3, 2, 1, 4]\).

Bình luận

Mới nhất
Tải bình luận...

Không có bình luận nào.