Truy vấn trên mảng

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: 1000 Thời gian: 1.0s Bộ nhớ: 256M Input: bàn phím Output: màn hình

Cho dãy số \(A[]\) gồm có \(N\) phần tử, có \(3\) thao tác như sau:

  • Thao tác \(1\): Thêm \(1\) phần tử \(X\) vào mảng.
  • Thao tác \(2\): Xóa \(1\) phần tử \(X\) khỏi mảng. Trong trường hợp phần tử \(X\) không xuất hiện trong mảng, sẽ không thực hiện xóa, nếu trong mảng có nhiều phần tử \(X\) thì chỉ xóa đi \(1\) phần tử \(X\) trong mảng.
  • Thao tác \(3\): Truy vấn xem phần tử \(X\) có xuất hiện trong mảng hay không?

Ban đầu mảng \(A\)\(N\) phần tử, với các truy vấn phần tử \(X\) trong mảng, in ra YES nếu \(X\) xuất hiện trong mảng, ngược lại in ra NO.

Input

  • Dòng đầu tiên là số nguyên \(N\).
  • Dòng thứ \(2\) gồm \(N\) số nguyên \(A[i]\).
  • Dòng thứ \(3\) là số lượng thao tác \(Q\).
  • \(Q\) dòng tiếp theo mỗi dòng là thông tin của một thao tác, gồm \(2\) số, số đầu tiên là loại thao tác, số tiếp theo là phần tử \(X\) trong thao tác.

Constraints

  • \(1 \le N \le 10^4\)
  • \(0 \le A[i], X \le 10^9\)
  • \(1 \le Q \le 1000\)

Output

  • Đối với mỗi thao tác loại \(3\), in ra YES nếu \(X\) xuất hiện trong mảng, ngược lại in ra NO.

Example

Test 1

Input
6
1 2 3 4 5 6
4
1 1
2 6
3 1
3 6
Output
YES
NO
Note

Ban đầu mảng có \(6\) phần tử \(1, 2, 3, 4, 5, 6\). Sau thao tác đầu tiên mảng có thêm \(1\) phần tử \(1\) và trở thành mảng \((1, 1, 2, 3, 4, 5, 6)\). Sau thao tác thứ \(2\), mảng xóa đi \(1\) phần tử \(6\) và trở thành mảng \((1, 1, 2, 3, 4, 5)\). Thao tác thứ \(3\) truy vấn phần tử \(1\), câu trả lời là YES\(1\) xuất hiện trong mảng. Thao tác thứ \(4\) truy vấn phần tử \(6\), câu trả lời là NO\(6\) không xuất hiện trong mảng.

Bình luận

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

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