PreVOI 2024 - Đổi chỗ

Xem dạng PDF

Gửi bài giải

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

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

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

Sample Output đúng của bài được đính chính ở dưới.

Alice có một dãy số nguyên ~a_1, a_2, \dots, a_n~ là một hoán vị của dãy ~1, 2, \dots, n~. Dãy ~a_1, a_2, \dots, a_n~ được gọi là dãy hình nón tại vị trí ~k~ ~(1 \le k \le n)~ nếu dãy tăng dần từ đầu đến vị trí thứ ~k~ và giảm dần từ vị trí ~k~ đến ~n~, cụ thể: ~a_1 < a_2 < \dots < a_{k-1} < a_k > a_{k+1} > \dots > a_n~.

Alice nhận thấy, với một vị trí ~k~ ~(1 \le k \le n)~ bất kì luôn có thể thực hiện một dãy thao tác đổi chỗ hai phần tử cạnh nhau để nhận được dãy hình nón tại vị trí ~k~, nhưng để thực hiện với ít thao tác nhất thì không dễ dàng.

Yêu cầu: Với mỗi vị trí ~k~ ~(1 \le k \le n)~, hãy giúp Alice thực hiện ít thao tác đổi chỗ hai phần tử cạnh nhau nhất để từ dãy ban đầu nhận được dãy hình nón tại vị trí ~k~.

Input

  • Dòng đầu tiên chứa số nguyên ~n~ ~(1 \le n \le 5 \cdot 10^5)~ là độ dài của dãy hoán vị;

  • Dòng thứ hai chứa ~n~ số ~a_i~ ~(1 \le a_i \le n)~ mô tả dãy hoán vị được cho.

Output

  • Ghi ra trên một dòng gồm ~n~ số nguyên, số thứ ~k~ là số thao tác đổi chỗ ít nhất cần sử dụng để nhận được dãy hình nón tại vị trí ~k~.

Scoring

Subtask Điểm Ràng buộc
1 ~15\%~ ~n \le 8~
2 ~15\%~ ~n \le 18~
3 ~20\%~ ~n \le 100~
4 ~15\%~ ~n \le 500~
5 ~15\%~ ~n \le 5000~
6 ~20\%~ Không có giới hạn gì thêm

Sample Input 1

7
1 6 7 2 5 4 3

Sample Output 1

10 4 3 2 4 7 11

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.