IT - SEBIT
Point: 100.0
Time limit: 0.1s
Memory limit: 488 M
Input:
stdin
Output:
stdout
Author:
Problem type
CTDL: Segment Tree
Ngôn ngữ cho phép
C, C#, C++, Java, Pascal, Python, Text
Cho một dãy nhị phân gồm N bit, chúng ta có 3 loại thao tác trên dãy:
0 p
: Bật/tắt bit \(p\) trên dãy.1 u v
: Đếm số lượng bit 0 trong đoạn từ \(u\) đến \(v\) tính cả 2 đầu.2 k
: Tìm vị trí bit 0 thứ \(k\) tính từ đầu dãy.
Input
- Dòng đầu chứa số nguyên \(n\) là độ dài dãy nhị phân.
- Dòng 2 chứa một xâu nhị phân độ dài \(n\).
- Dòng 3 chứa số nguyên \(m\) là số truy vấn.
- \(m\) dòng tiếp theo, mỗi dòng chứa một trong 3 định dạng của các truy vấn.
Output
- Gồm nhiều dòng trả lời truy vấn 2 và 3,
- Với truy vấn 3 nếu không tồn tại bit 0 thứ \(k\) thì in ra 0.
Giới hạn
- \(n,m,k\leq 50000\)
Ví dụ
Sample Input
5
10010
4
1 1 4
0 3
1 1 4
2 3
Sample Output
2
1
0