Cho nội dung một tệp robots.txt và một truy vấn gồm tên User-agent và một đường dẫn (path). Hãy xác định User-agent đó có được phép truy cập path hay không, theo quy tắc:
Mỗi dòng nội dung robots.txt có dạng "Directive: gia_tri" (User-agent, Disallow hoặc Allow), phần sau ký tự "#" là chú thích bị bỏ qua, dòng trống bị bỏ qua.
Các dòng User-agent liên tiếp (không có directive khác xen giữa) tạo thành một nhóm áp dụng chung; gặp User-agent sau khi nhóm đã có directive thì bắt đầu nhóm mới.
Với User-agent được truy vấn: nếu có nhóm khớp chính xác tên (không phân biệt hoa thường), chỉ dùng luật của các nhóm đó; nếu không, dùng luật của các nhóm có User-agent là "*".
Trong các luật Disallow/Allow áp dụng được, một luật KHỚP với path nếu path bắt đầu bằng đúng giá trị của luật đó (giá trị rỗng luôn khớp, độ dài khớp = 0). Luật khớp có giá trị dài nhất (nhiều ký tự nhất) sẽ được áp dụng; nếu bằng độ dài, Allow được ưu tiên hơn Disallow. Nếu không có luật nào khớp, kết quả mặc định là ALLOW.
Dòng đầu tiên chứa số nguyên n là số dòng nội dung robots.txt. n dòng tiếp theo là nội dung. Dòng cuối cùng chứa "user-agent path" cách nhau bởi khoảng trắng.
1 <= n <= 200.
In ra "ALLOW" nếu được phép truy cập, hoặc "DISALLOW" nếu bị chặn.
Ví dụ:
Đầu vào:
3
User-agent: *
Disallow: /admin
Allow: /admin/public
Googlebot /admin/public/page
Đầu ra:
ALLOW
Đang tải editor...