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

    solution

    Đề bài: [Lập trình Web & Backend] Hook before/after Action

    Hook before/after Action

    Controller có thể đăng ký before hooks (chạy trước action) và after hooks (chạy sau action). Before hooks chạy theo thứ tự đăng ký; after hooks chạy theo thứ tự ngược với thứ tự đăng ký (giống stack unwinding).

    Một before hook có thể halt (chặn) chuỗi: nếu hook in trạng thái halt, action và mọi hook còn lại không chạy, và after hooks không chạy.

    Cho danh sách before hooks (mỗi hook: name pass|halt), tên action, danh sách after hooks. In log theo thứ tự thực thi:

    • before <name> cho mỗi before hook chạy
    • nếu halt: thêm halted by <name> rồi dừng
    • nếu qua hết: action <name> rồi các after <name> (thứ tự ngược).
    • Định dạng đầu vào:

      Dòng 1: số nguyên B. B dòng: name pass|halt. Dòng kế: tên action. Dòng kế: số nguyên A. A dòng: tên after hook.

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

      0 ≤ B, A ≤ 50.

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

      Các dòng log theo thứ tự thực thi.

    Ví dụ:

    Đầu vào:

    2
    auth pass
    log pass
    save
    2
    log
    commit
    

    Đầu ra:

    before auth
    before log
    action save
    after commit
    after log

    Giải thích:

    2 before chạy (đều pass), rồi action, rồi after theo thứ tự ngược: log trước commit.

    Đang tải editor...