FJ Loves Rotations
Đề bài
Mô tả
Bác John có một mảng gồm số nguyên, đánh số từ đến . Bác chọn trước một vị trí và ghi lại giá trị đang đứng ở đó.
Sau đó, mỗi bước bác dịch vòng cả mảng sang trái hoặc sang phải một ô, rồi ghi lại giá trị mới đang đứng ở vị trí . Dịch vòng nghĩa là phần tử bị đẩy ra khỏi một đầu sẽ quay lại ở đầu kia.
Bác muốn ghi được tất cả các giá trị phân biệt có trong mảng. Với mỗi vị trí từ đến , hãy tính số bước dịch ít nhất cần thực hiện.
Dữ liệu vào
- Dòng : số nguyên .
- Dòng : số nguyên .
Dữ liệu ra
Một dòng gồm số nguyên cách nhau bởi dấu cách, số thứ là đáp án ứng với vị trí .
Ràng buộc
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 6 1 2 3 1 3 4 |
4 3 3 4 3 3 | Mảng có 4 giá trị phân biệt là 1, 2, 3, 4. Với , bác đã có sẵn ; dịch để lần lượt đọc , , , thì mất 4 bước, nhưng đi về phía kia đọc , , chỉ mất 3 bước. |
| 12 1 1 2 1 1 3 1 1 4 1 1 1 |
8 7 6 7 8 9 8 7 6 7 8 9 | Bốn giá trị phân biệt nằm ở các vị trí 1, 3, 6, 9. Vị trí 3 và vị trí 9 là hai chỗ tốt nhất, chỉ cần 6 bước. |
Bình luận