Sắp Xếp Với 0

Xem dạng PDF

Gửi bài giải

Điểm: 10,00
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 64M
Input: stdin
Output: stdout

Tác giả:
Dạng bài

Cho \(K = (~k_0, k_1, … , k_n~)\) là một hoán vị của dãy số \((0, 1, 2, …, n)\).
Xét phép biến đổi ~SwapZero(v)~ với tham số ~v~ là một số nguyên dương \(\in[1, n]\): Đảo vị trí phần tử mang giá trị ~v~ và phần tử mang giá trị 0 trong dãy ~K~.

Yêu cầu

Hãy tìm một số ít nhất các phép biến đổi ~SwapZero~ để biến dãy ~K~ thành dãy \((1, 2, …, n)\).

Dữ liệu

Dòng 1: Chứa số nguyên dương ~n~.
Dòng 2: Chứa ~n+1~ số nguyên ~k_0, k_1, … , k_n~.

Kết quả

Dòng 1: Ghi số lượng tối thiểu các phép ~SwapZero(s)~ phải thực hiện.
Dòng 2: Ghi tham số ~s~ của các phép ~SwapZero~ theo đúng trình tự thực hiện.

Giới hạn

\(n \leq ~10^5~.\)

Input

5   
2 3 0 1 5 4

Output

7
2 3 1 3 4 5 4

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.