Cho một danh sách bản ghi DNS, mỗi bản ghi gồm tên (name), loại (type: CNAME hoặc A), đích/địa chỉ IP (target) và TTL. Một tên có thể có NHIỀU bản ghi loại A (nhiều địa chỉ IP - round robin), nhưng nếu một tên có bản ghi CNAME thì tên đó KHÔNG được có bất kỳ bản ghi nào khác (kể cả CNAME khác) - nếu vi phạm, đó là XUNG ĐỘT.
Với mỗi tên truy vấn, hãy phân giải:
bắt đầu từ tên đó, nếu tên hiện tại có một bản ghi CNAME duy nhất, đi tiếp theo đích của nó (cộng dồn TTL nhỏ nhất từng gặp);
nếu tên hiện tại có một hoặc nhiều bản ghi A, đó là kết quả cuối: tập hợp tất cả địa chỉ IP tại tên đó, TTL hiệu lực là giá trị NHỎ NHẤT trong toàn bộ các TTL đã gặp trên đường đi (kể cả các bản ghi A cuối).
Nếu một tên trong chuỗi có nhiều bản ghi và trong đó có CNAME: XUNG ĐỘT.
Nếu một tên trong chuỗi không có bản ghi nào: KHONG TIM THAY.
Nếu quay lại một tên CNAME đã đi qua: LOOP.
Dòng đầu tiên chứa số nguyên n. n dòng tiếp theo, mỗi dòng "ten loai dich_hoac_ip ttl". Dòng tiếp theo chứa số nguyên m là số truy vấn. m dòng tiếp theo, mỗi dòng một tên cần phân giải.
1 <= n <= 200, 1 <= m <= 20.
In ra đúng m dòng theo thứ tự, mỗi dòng dạng "ten: ket_qua", trong đó ket_qua là "ip1,ip2,... ttl_hieu_luc" (các IP sắp xếp theo alphabet tăng dần, cách nhau bởi dấu phẩy không có khoảng trắng, rồi một khoảng trắng, rồi TTL), hoặc "LOOP", hoặc "KHONG TIM THAY", hoặc "XUNG DOT".
Ví dụ:
Đầu vào:
5
www CNAME app 300
app A 1.2.3.4 60
app A 1.2.3.5 60
mail A 9.9.9.9 500
ftp CNAME missing 100
3
www
mail
ftp
Đầu ra:
www: 1.2.3.4,1.2.3.5 60
mail: 9.9.9.9 500
ftp: KHONG TIM THAY
Đang tải editor...