[DHBB24 - CVP - 10] Bài 3: Chìa khóa

Xem dạng PDF

Gửi bài giải

Điểm: 50,00 (OI)
Giới hạn thời gian: 2.0s
Giới hạn bộ nhớ: 1G
Input: stdin
Output: stdout

Dạng bài
Ngôn ngữ cho phép
C, C++, Java, Pascal, PyPy, Python, Scratch, TEXT

Trong trường hợp đề bài hiển thị không chính xác, bạn có thể tải đề bài tại đây: Đề bài

Có ~N~ căn phòng được xây dựng theo một đường thẳng và được đánh số từ ~1~ đến ~N~. Chỉ có những phòng có số liền kề mới thông nhau. Có khóa cửa giữa các phòng thông nhau.

Chìa khóa mở cửa thông giữa hai phòng ~i~ và ~i+1~ có loại là ~C_i~ (~1 \le i \le N-1~). Khi vào phòng ~i~ (~1 \le i \le N~), có thể lấy tất cả các chìa khóa ở trong phòng này. Phòng thứ ~i~ có ~B_i~ chìa khóa các loại ~A[i][1], \dots, A[i][B_i]~, đảm bảo các ~A[i][j]~ đôi một phân biệt. Chìa khóa có thể được tái sử dụng nhiều lần.

Bạn cần trả lời ~Q~ truy vấn, mỗi truy vấn cho hai số nguyên ~x, y~ (~x \neq y~) mô tả rằng nếu một người bị nhốt vào phòng ~x~ mà không có bất kỳ chìa khóa nào trong tay thì liệu rằng anh ta có thể vào được phòng ~y~ hay không.

Yêu cầu: Xác định khả năng di chuyển giữa các phòng dựa trên các chìa khóa thu thập được.

Input

  • Dòng 1: chứa số nguyên ~N~ (~2 \le N \le 500,000~);
  • Dòng 2: chứa ~N-1~ số nguyên ~C_1, C_2, \dots, C_{N-1}~ (~1 \le C_i \le N~);
  • Tiếp theo là ~N~ dòng, dòng thứ ~i~ (~1 \le i \le N~) trong đó gồm một số nguyên ~B_i~ (~1 \le B_i \le 500,000~) ở đầu, tiếp theo là ~B_i~ số ~A[i][1], \dots, A[i][B_i]~ (~1 \le A[i][j] \le N, \forall i, j~);
  • Dòng tiếp theo ghi một số nguyên ~Q~ (~1 \le Q \le 500,000~);
  • Cuối cùng là ~Q~ dòng, mô tả ~Q~ truy vấn, mỗi truy vấn gồm hai số nguyên ~X_k, Y_k~ (~1 \le k \le Q~).

Output

  • Ghi trên ~Q~ dòng, mỗi dòng gồm một câu trả lời cho truy vấn tương ứng. Ghi "YES" nếu có thể, "NO" nếu không thể.

Bình luận

Hãy đọc nội quy trước khi bình luận.


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