Phần tử nhỏ thứ k trên đoạn

Đề bài

Mô tả

Cho mảng a1,a2,…,an và q truy vấn. Mỗi truy vấn gồm ba số l,r,k (1≤l≤r≤n, 1≤k≤r−l+1): hãy in ra phần tử nhỏ thứ k trong đoạn al,al+1,…,ar (nếu đoạn có nhiều phần tử bằng nhau, mỗi vị trí tính riêng).

Dữ liệu vào

  • Dòng đầu: hai số nguyên n và q.
  • Dòng thứ hai: n số nguyên a1,…,an.
  • q dòng tiếp theo, mỗi dòng ba số l,r,k mô tả một truy vấn.

Dữ liệu ra

In q dòng — mỗi dòng là phần tử nhỏ thứ k tương ứng của đoạn.

Ràng buộc

  • 1≤n,q≤2·105
  • 1≤ai≤109
  • 1≤l≤r≤n và 1≤k≤r−l+1

Ví dụ

Input Output Giải thích
7 5
3 1 4 1 5 9 2
1 5 1
1 5 3
1 5 5
3 7 2
1 7 4
1
3
5
2
3
Đoạn [1,5]=(3,1,4,1,5) sắp xếp (1,1,3,4,5): nhỏ thứ 1 là 1, thứ 3 là 3, thứ 5 là 5. Đoạn [3,7]=(4,1,5,9,2) sắp xếp (1,2,4,5,9): nhỏ thứ 2 là 2. Đoạn [1,7] sắp xếp (1,1,2,3,4,5,9): nhỏ thứ 4 là 3.
3 3
5 5 5
1 3 1
1 3 2
2 2 1
5
5
5
Mọi phần tử đều bằng 5.

Ghi chú

  • "Nhỏ thứ k" hiểu theo nghĩa nếu sắp xếp đoạn không giảm thì phần tử ở vị trí k chính là đáp án.
  • Các vị trí lặp lại được tính riêng: nếu trong đoạn có hai số 1 thì cả hai đều đóng góp vào thứ tự.

Bình luận

Không có bình luận tại thời điểm này.

gnatmake 12.2.0 a68g 3.1.2 nasm 2.16.1 as_x64 2.47 awk 1.3.4 gcc 16.2.0 dotnet 10.0.402 g++ 16.2.0 g++-themis 16.2.0 g++17 16.2.0 g++20 16.2.0 g++23 16.2.0 clang++ 22.1.8 dmd 2.113.0 dart 3.13.6 gforth 0.7.3 gfortran 15.3.0 go 1.27.3 groovyc 5.1.3 javac 26.0.2.1 node 26.12.1 julia 1.13.2 kotlinc 2.4.21 lean 4.35.0 sbcl 2.2.9 lua 5.5.1 nim 2.2.12 fpc 3.2.2 fpc-themis 3.2.2 perl 5.42.3 php 8.5.12 pike 8.0 swipl 9.0.4 pypy3 7.3.23 python3 3.15.1 racket 8.7 ruby 4.0.8 rustc 1.99.1 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 swiftc 6.4.1 tclsh 8.6 bun 1.4.4 deno 2.9.8 v 0.5.2 zig 0.17.0