FJ Loves Rotations
Nộp bài giải
Điểm:
1,00 (OI)
Giới hạn thời gian:
1.0s
Python 3
5.0s
Giới hạn bộ nhớ:
256M
Đầu vào:
stdin
Đầu ra:
stdout
Tác giả:
Dạng bài
Ngôn ngữ cho phép
C++, Go, Java, Kotlin, Pascal, Python, Scratch
Bác John có một mảng gồm số nguyên. Bác chọn một vị trí yêu thích và ghi lại giá trị .
Bác có thể thực hiện phép dịch vòng mảng sang trái hoặc phải (cyclic shift). Sau mỗi phép dịch, bác ghi lại giá trị mới tại vị trí . Mục tiêu là thu thập tất cả các giá trị phân biệt có trong mảng.
Hãy tìm số phép dịch tối thiểu cần thực hiện để thu thập được tất cả các giá trị phân biệt, với mỗi vị trí từ đ��n .
Dữ liệu vào
- Dòng đầu tiên chứa số nguyên ().
- Dòng thứ hai chứa số nguyên ().
Dữ liệu ra
In số nguyên cách nhau b��i dấu cách, số thứ là đáp án khi .
Ràng buộc
- Input 3-5:
- Input 6-8:
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 6 1 2 3 1 3 4 |
4 3 3 4 3 3 | Có 4 giá trị phân biệt: 1,2,3,4. Với : cần 4 phép dịch. Với : cần 3 phép dịch (dịch phải 3 lần thu được tất 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 | Có 4 giá trị phân biệt. Tối ưu nhất bắt đầu từ vị trí 3 hoặc 9 (cần 6 phép). |
Bình luận