Từ điển của Mahmoud

Đề bài

Mô tả

Bạn đang xây dựng một cuốn từ điển gồm n từ và các quan hệ giữa chúng. Có hai loại quan hệ:

  • Đồng nghĩa: hai từ có cùng nghĩa.
  • Trái nghĩa: hai từ có nghĩa trái ngược nhau.

Quan hệ có tính bắc cầu theo nghĩa tự nhiên: nếu một từ có quan hệ với từ khác, thì nó cũng thừa hưởng mọi quan hệ của từ đó. Ví dụ, nếu "thích" đồng nghĩa với "yêu" và "yêu" trái nghĩa với "ghét", thì "thích" cũng trái nghĩa với "ghét". Tương tự, nếu "yêu" trái nghĩa với "ghét" và "ghét" trái nghĩa với "thích", thì "yêu" đồng nghĩa với "thích".

Bạn lần lượt phát hiện m quan hệ. Một quan hệ bị coi là sai nếu khi thêm nó vào, tồn tại hai từ vừa đồng nghĩa vừa trái nghĩa với nhau (mâu thuẫn với các quan hệ đã được chấp nhận trước đó). Với mỗi quan hệ mới, hãy xác định nó đúng hay sai dựa trên các quan hệ đã được chấp nhận. Nếu sai, in ra "NO" và bỏ qua quan hệ đó (không áp dụng, không ảnh hưởng tới các quan hệ sau). Nếu đúng, in ra "YES" và chấp nhận nó.

Sau khi xử lý xong tất cả quan hệ, bạn nhận q câu hỏi. Mỗi câu hỏi cho hai từ và cần trả lời quan hệ giữa chúng dựa trên toàn bộ các quan hệ đã được chấp nhận.

Dữ liệu vào

  • Dòng đầu chứa ba số nguyên n, m, q.
  • Dòng thứ hai chứa n từ phân biệt, mỗi từ gồm các chữ cái Latinh thường, độ dài không quá 20.
  • m dòng tiếp theo, mỗi dòng chứa một số nguyên t (1t2) và hai từ khác nhau x, y (đều thuộc từ điển). Nếu t=1, x đồng nghĩa với y; nếu t=2, x trái nghĩa với y.
  • q dòng tiếp theo, mỗi dòng chứa hai từ khác nhau thuộc từ điển cần truy vấn quan hệ.

Dữ liệu ra

  • In m dòng, mỗi dòng ứng với một quan hệ: "YES" nếu quan hệ đúng, "NO" nếu sai.
  • Sau đó in q dòng, mỗi dòng ứng với một câu hỏi: in 1 nếu hai từ đồng nghĩa, in 2 nếu trái nghĩa, in 3 nếu không xác định được quan hệ giữa chúng.

Ràng buộc

  • 2n105
  • 1m,q105
  • Mỗi từ có độ dài không quá 20 chữ cái Latinh thường.
  • Trong mọi quan hệ và mọi câu hỏi, hai từ luôn khác nhau.

Ví dụ

Input Output Giải thích
3 3 4
hate love like
1 love like
2 love hate
1 hate like
love like
love hate
like hate
hate like
YES
YES
NO
1
2
2
2
"love" đồng nghĩa "like" (YES). "love" trái nghĩa "hate" (YES). Quan hệ "hate đồng nghĩa like" là sai vì "like" đã trái nghĩa "hate" (NO, bỏ qua). Các truy vấn: love-like đồng nghĩa (1); love-hate, like-hate, hate-like đều trái nghĩa (2).
8 6 5
hi welcome hello ihateyou goaway dog cat rat
1 hi welcome
1 ihateyou goaway
2 hello ihateyou
2 hi goaway
2 hi hello
1 hi hello
dog cat
dog hi
hi hello
ihateyou goaway
welcome ihateyou
YES
YES
YES
YES
NO
YES
3
3
1
1
2
Quan hệ thứ 5 "hi trái nghĩa hello" mâu thuẫn nên bị bỏ qua (NO); quan hệ thứ 6 "hi đồng nghĩa hello" hợp lệ (YES). dog-cat và dog-hi không có quan hệ (3); hi-hello đồng nghĩa (1); ihateyou-goaway đồng nghĩa (1); welcome-ihateyou trái nghĩa (2).

Bình luận

Không có bình luận tại thời điểm này.

gnatmake 12.2.0 a68g 3.1.2 nasm 2.16.1 as_x64 2.46 awk 1.3.4 gcc 16.1.0 csc 6.12.0.200 g++ 16.1.0 g++-themis 16.1.0 g++17 16.1.0 g++20 16.1.0 g++23 16.1.0 clang++ 22.1.6 dmd 2.112.0 dart 3.12.1 gforth 0.7.3 gfortran 12.2.0 go 1.26.3 groovyc 5.0.6 javac 25.0.3 node 26.2.0 kotlinc 2.3.21 sbcl 2.2.9 lua 5.4.8 nim 2.2.10 fpc 3.2.2 fpc-themis 3.2.2 perl 5.36.0 php 8.5.6 pike 8.0 pypy3 7.3.23 python3 3.14.5 racket 8.7 ruby 4.0.5 rustc 1.96.0 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 tclsh 8.6 bun 1.3.14 deno 2.8.1 v 0.5.1 zig 0.16.0