Sắp Xếp Lại Bò
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
Cho một dãy gồm phần tử là một hoán vị của các số từ đến . Bạn cần sắp xếp lại dãy này thành hoán vị bằng cách thực hiện các phép dịch vòng.
Mỗi phép dịch vòng hoạt động như sau: chọn một phần tử chưa ở đúng vị trí, di chuyển nó đến vị trí đúng trong , phần tử bị đẩy ra sẽ tiếp tục di chuyển đến vị trí đúng của nó, và cứ thế cho đến khi hoàn thành một chu trình quay về phần tử ban đầu.
Hãy đếm số phép dịch vòng cần thực hiện và tìm độ dài của phép dịch vòng dài nhất.
Dữ liệu vào
- Dòng đầu tiên: số nguyên .
- dòng tiếp theo: hoán vị (mỗi dòng một số).
- dòng tiếp theo: hoán vị (mỗi dòng một số).
Dữ liệu ra
Một dòng chứa hai số nguyên cách nhau bởi dấu cách: số phép dịch vòng và độ dài phép dịch vòng dài nhất. Nếu không cần phép dịch vòng nào, in .
Ràng buộc
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 5 5 1 4 2 3 2 5 3 1 4 |
2 3 | Có 2 chu trình: chu trình (5,1,2) có độ dài 3 và chu trình (4,3) có độ dài 2. Chu trình dài nhất có độ dài 3. |
Bình luận