Chìa khóa

Xem PDF



Tác giả:
Dạng bài
Ngôn ngữ cho phép
Assembly, Awk, C, C#, C++, Clang, Cobol, D, Groovy, Haskell, JS, Java, Kotlin, Lua, Node JS, OCaml, ObjectiveC, Output, PHP, Pascal, Perl, Prolog, Pypy, Pypy 3, Python, Ruby, Rust, Scala, Scratch, Swift
Điểm: 2300 (p) Thời gian: 1.0s Bộ nhớ: 1G Input: bàn phím Output: màn hình

\(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\)\(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\)\(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.

Input

  • Dòng 1: chứa số nguyên \(N\) (\(2 \le N \le 5 \cdot 10^5\));
  • 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 5 \cdot 10^5\)) ở đầ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 5 \cdot 10^5\));
  • 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 xâu là câu trả lời cho truy vấn tương ứng. Ghi YES nếu có thể, NO nếu không thể.

Example

Test 1

Input
5
1 2 3 4
2 2 3
1 1
1 1
1 3
1 4
4
2 4
4 2
1 5
5 3
Output
YES
NO
NO
YES
Note
  • Truy vấn 1: người này tìm được chìa khóa 1 trong phòng 2; qua phòng 1, nhặt chìa khóa 2, 3; đi qua các phòng 2, 3, 4.
  • Truy vấn 2: không có cách nào ra khỏi phòng 4.
  • Truy vấn 3: không có cách nào ra khỏi phòng 1.
  • Truy vấn 4: đi từ phòng 5 đến phòng 4 rồi đến phòng 3.

Scoring

  • Subtask 1 (30% số điểm): \(N, Q \le 100\).
  • Subtask 2 (70% số điểm): Không có ràng buộc bổ sung.

Bình luận

Mới nhất
Tải bình luận...

Không có bình luận nào.