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

Không có ý kiến tại thời điểm này.