[Buổi 21][Segment Tree][RDD] Bài 2: Số không và số một


LÀM BÀI

Points: 100
Time limit: 2.0s
Memory limit: 64M

Author:
Problem type

Số không và số một

Trong một buổi chiều đẹp trời, FullHouse Dev đang ngắm những bông hoa cúc trong vườn. Họ nhận thấy một số bông cúc đã nở rộ trong khi số khác vẫn còn búp. Điều này gợi nhớ cho họ về một bài toán thú vị về dãy số 0 và 1, nơi họ cần quản lý một mảng và thực hiện các thao tác trên đó.

Bài toán

FullHouse Dev được cung cấp một mảng \(A\) chỉ chứa các số 1 ban đầu. Họ có thể thực hiện hai loại thao tác:

  1. Cho một chỉ số \(i\), cập nhật giá trị tại \(A[i]\) thành 0.
  2. Cho một giá trị \(K\), in ra vị trí của số 1 thứ \(K\) trong mảng \(A\). Nếu không tồn tại vị trí như vậy, in ra -1.
INPUT FORMAT:
  • Dòng đầu tiên chứa số nguyên \(N\) - kích thước của mảng
  • Dòng thứ hai chứa số nguyên \(Q\) - số lượng thao tác
  • \(Q\) dòng tiếp theo, mỗi dòng mô tả một trong hai loại thao tác:
    • Thao tác loại 1: "0 \(i\)" - cập nhật vị trí \(i\) thành 0
    • Thao tác loại 2: "1 \(K\)" - tìm vị trí số 1 thứ \(K\)
OUTPUT FORMAT:
  • Với mỗi thao tác loại 2, in ra kết quả trên một dòng mới
Ràng buộc:
  • \(1 \leq N \leq 10^5\)
  • \(1 \leq Q \leq 10^5\)
  • \(1 \leq i \leq N\)
  • \(1 \leq K \leq N\)
Ví dụ
INPUT
6
3
1 5
0 2
1 5
OUTPUT
5
6
Giải thích
  • Ban đầu, mảng \(A\) chứa toàn số 1: [1, 1, 1, 1, 1, 1]
  • Thao tác thứ nhất: Tìm số 1 thứ 5 → vị trí 5
  • Thao tác thứ hai: Đặt vị trí 2 thành 0 → mảng trở thành [1, 0, 1, 1, 1, 1]
  • Thao tác thứ ba: Tìm số 1 thứ 5 → vị trí 6

Comments

There are no comments at the moment.

Zalo