FINDK1 - Phần tử giá trị 1 thứ K
Dữ liệu vào: standard input
Dữ liệu ra: standard output
Giới hạn thời gian: 1.0 giây
Giới hạn bộ nhớ: 128 megabyte
Đăng bởi: adminchg

Cho một dãy số gồm n phần tử gồm các số 0, 1 và m phép tính, mỗi phép tính là một trong 2 loại sau:

  • 1 i: thay đổi phần tử có chỉ số i thành giá trị ngược lại với nó (a[i] = 1 – a[i]);
  • 2 k: tìm phần tử thứ k (phần tử 1 được đánh số từ 0, đảm bảo rằng có đủ phần tử 1 trong mảng).

Yêu cầu: Hãy tìm phần tử giá trị 1 thứ k trên dãy gồm các số 0 và 1.

Dữ liệu vào:

- Dòng đầu tiên gồm 2 số nguyên n, m (1 ≤ n, m ≤ 105);

- Dòng thứ hai chứa N số nguyên a1, a2,..., aN là trạng thái ban đầu của dãy số;

- m dòng tiếp theo, mỗi dòng chứa 2 số nguyên miêu tả một trong 2 phép tính đã được đề cập ở trên.

Kết quả: Đối với mỗi phép tính thuộc loại thứ hai, in ra chỉ số của phần tử 1 tương ứng (các chỉ số được đánh số thứ tự từ 1).    

Ví dụ

Input

Output

5 5

1 1 0 1 1

2 2

1 4

2 1

2 2

2 3

2

1

2

5

 

 

 

  • 50% số test có n, m ≤ 103;
  • 50% số test còn lại có n, m ≤ 105.
Back to Top