Sắp xếp đồng xu
Đề bài
Mô tả
Có đồng xu xếp thành một hàng, đánh số từ đến từ trái sang phải. Mỗi đồng xu thuộc một trong hai loại: O (đã ngừng lưu hành) hoặc X (còn lưu hành). Hàng được gọi là đã sắp xếp nếu mọi đồng O đứng trước mọi đồng X.
Để sắp xếp, người ta lặp lại một lượt như sau:
- Duyệt các đồng xu từ trái sang phải.
- Nếu đồng xu thứ là X và đồng xu thứ là O thì đổi chỗ hai đồng xu này, rồi tiếp tục duyệt từ vị trí (tức là đồng X vừa được đẩy sang phải có thể tiếp tục bị đổi chỗ trong cùng lượt).
Quá trình dừng lại ngay sau lượt đầu tiên không có phép đổi chỗ nào. Độ khó của hàng là tổng số lượt đã thực hiện, tính cả lượt cuối cùng không đổi chỗ. Ví dụ, một hàng đã sắp xếp có độ khó bằng .
Ban đầu cả đồng xu đều là O. Sau đó lần lượt lần, đồng xu ở vị trí được thay bằng đồng X. Hãy tính độ khó của hàng ở trạng thái ban đầu và sau mỗi lần thay.
Dữ liệu vào
- Dòng đầu tiên chứa số nguyên .
- Dòng thứ hai chứa số nguyên phân biệt .
Dữ liệu ra
In ra số nguyên trên một dòng, cách nhau bởi dấu cách, trong đó là độ khó của hàng ban đầu và là độ khó sau lần thay thứ .
Ràng buộc
- , các đôi một phân biệt
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 4 1 3 4 2 |
1 2 3 2 1 | Sau lần thay đầu, hàng là XOOO: lượt 1 đẩy X về cuối (OOOX), lượt 2 không đổi chỗ, nên độ khó là 2. Sau lần thay thứ hai, hàng là XOXO: XOXO → OXOX → OOXX rồi thêm một lượt kiểm tra, độ khó là 3. Sau lần thay thứ ba, XOXX → OXXX, độ khó là 2. Cuối cùng hàng toàn X, độ khó là 1. |
| 8 6 8 3 4 7 2 1 5 |
1 2 2 3 4 3 4 5 1 | Sau lần thay thứ hai, X ở vị trí 6 và 8; chỉ X ở vị trí 6 cần di chuyển nên độ khó là 2. |
Bình luận