Tăng mảng

Xem PDF

Điểm: 100 (p) Thời gian: 2.0s Bộ nhớ: 518M Input: bàn phím Output: màn hình

Cho mảng số nguyên \(n\) phần tử \(a_1, a_2, ..., a_n\), bảng sẽ được biến đổi sau mỗi thời điểm như sau: với mỗi số \(a_i\) ta sẽ đếm xem có bao nhiêu giá trị khác nhau trong mảng \(a\) mà giá trị lớn hơn \(a_i\) và tăng \(a_i\) lên đúng bằng số lượng giá trị khác nhau đó. Tại một thời điểm tất cả các phần tử đều biến đổi như trên.

Hãy trả lời các truy vấn trong 3 loại sau:

  • \(1\ k\): đến thời điểm \(k\) thì có bao nhiêu giá trị khác nhau trong mảng
  • \(2\ k\): tổng số giá trị tăng lên của tất cả các phẩn tử đến thời điểm \(k\) là bao nhiêu
  • \(3\ k\ i\): giá trị của phần tử \(a_i\) đến thời điểm \(k\) bằng bao nhiêu

Input

  • Dòng đầu chứa số \(n, q\) (\(1\le n, q\le 3\cdot 10^5\))

  • Dòng thứ hai chứa \(n\) số \(a_i\) (\(1\le a_i \le 10^{12}\))

  • \(q\) dòng tiếp theo mỗi dòng mô tả một trong ba truy vấn trên (\(0\le k\le 10^{12}, 1\le i\le n\))

Output

  • Ghi ra kết quả trên \(q\) dòng.

Example

Test 1

Input
6 6
5 4 4 2 2 2
1 0
1 1
1 2
2 1
2 2
3 1 5
Output
3
2
1
8
11
4

Test 2

Input
5 4
0 3 5 4 2
1 0
1 1
2 1
3 1 1
Output
5
2
10
4

Bình luận

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