#355. QUERYTOP – Truy vấn Top

Bộ nhớ: 256 MiB Thời gian: 1000 ms Nhập/xuất từ luồng chuẩn
Kiểu bài: Thông thường Kiểu chấm: Chưa có dữ liệu
Đưa lên bởi: Trùm CUỐI

Đề bài

Cho mảng A gồm N số nguyên không âm: a_1, a_2, …, a_N . Giả sử quy ước “Top” của mỗi phần tử là số phần tử lớn hơn nó cộng với 1.

Cho M truy vấn, mỗi truy vấn có một trong hai dạng:

  • T\ i với i là một số nguyên dương (truy vấn dạng 1 ).
  • L\ t với t là một số nguyên dương (truy vấn dạng 2 ).

Với truy vấn dạng 1 , bạn cần trả lời “Top” của phần tử a_i là bao nhiêu.

Với truy vấn dạng 2 , bạn cần liệt kê các giá trí khác nhau (theo thứ tự giảm dần) có “Top” lớn hơn hoặc bằng t .

Dữ liệu vào:

  • Dòng đầu ghi hai số nguyên dương N M lần lượt là số phần tử của mảng và số truy vấn;
  • Dòng thứ hai ghi N số a_1, a_2, …, a_N , mỗi số cách nhau bởi một dấu cách;
  • M dòng tiếp theo ghi M truy vấn (một trọng hai dạng trên).

Dữ liệu ra:

  • Gồm M dòng, dòng thứ i là câu trả lời cho truy vấn thứ i .

Ví dụ:

Dữ liệu vào:
6
2 3 5 3 5 5
4
T 2
T 1
L 2
L 5
Dữ liệu ra:
4
6
5
5 3
Giải thích: Phần tử 2 có Top là 6, phần tử 3 có Top là 4, phần tử 5 có Top là 1. Do đó:
  • Truy vấn 1 : Top của phần tử a_2 (a_2 = 3) 4
  • Truy vấn 2 : Top của phần tử a_1 (a_1 = 2) 6
  • Truy vấn 3 : Các phần tử có Top ≥ 2 là: 5$
  • Truy vấn 4 : Các phần tử có Top ≥ 5 là: 5 3

Giới hạn:

  • 1 ≤ N ≤ 10^6, 0 ≤ a_i ≤ 10^6, 1 ≤ M ≤ 10^6, 1 ≤ i, t ≤ N .