Phát hiện chu trình
Xem dưới dạng PDF
Gửi bài giải
Điểm:
1
Giới hạn thời gian:
1.0s
Giới hạn bộ nhớ:
256M
đầu vào:
stdin
Đầu ra:
stdout
Kiểu bài tập
Cho một danh sách liên kết đơn gồm N phần tử. Node cuối cùng có thể trỏ đến node thứ K (0-indexed) để tạo thành chu trình (cycle), hoặc trỏ tới NULL nếu K = -1.
Hãy kiểm tra xem danh sách có chu trình hay không bằng thuật toán Floyd's Cycle Detection (tortoise and hare): hai con trỏ chạy với tốc độ khác nhau, nếu gặp nhau thì có cycle.
Đầu vào
- Dòng đầu tiên chứa hai số nguyên N (1 ≤ N ≤ 1000) và K (0 ≤ K < N nếu có cycle, K = -1 nếu không).
- Dòng thứ hai chứa N số nguyên A_i (1 ≤ A_i ≤ 10^3).
Đầu ra
In ra YES nếu danh sách có chu trình, NO nếu không.
Ví dụ
Input:
5 2
1 2 3 4 5
Output:
YES
Nhận xét