Các lượt nộp
    Danh sách bài
    Trang chủ
    Báo lỗi

    solution

    Đề bài: [Hệ điều hành Unix] Phát hiện vòng lặp symlink

    Phát hiện vòng lặp symbolic link

    Cho ánh xạ symlink name -> target (tuyệt đối). Bắt đầu từ start, đi theo chuỗi. Nếu gặp lại một tên đã thăm → có vòng lặp, in LOOP. Nếu tới một tên không phải symlink → in tên đó.

    Đây mô phỏng giới hạn ELOOP của kernel nhưng phát hiện chính xác bằng tập đã thăm.

    Ví dụ

    • map: /a -> /b, /b -> /a; start=/a → LOOP
    • Định dạng đầu vào:

      Dòng 1: số symlink n. n dòng name target. Dòng cuối: start.

    • Ràng buộc đầu vào:

      0 ≤ n ≤ 1000.

    • Định dạng đầu ra:

      Một dòng: LOOP hoặc đường dẫn cuối.

    Ví dụ:

    Đầu vào:

    2
    /a /b
    /b /a
    /a
    

    Đầu ra:

    LOOP

    Giải thích:

    /a → /b → /a, gặp lại /a đã thăm → vòng lặp.

    Đang tải editor...