Problem

5/6

std::nth_element

Theory Click to read/hide

nth_element, bir dizideki n'inci elemanı lineer zamanda sıralanmış şekilde bulmanızı sağlayan bir fonksiyondur.
İşlev, dizinin sol ucunu, sıralı düzende değeri bulunacak konuma bir yineleyici ve dizinin sağ ucunu alır.
İşlevi uyguladıktan sonra, yineleyici tarafından belirtilen yerde gerekli değer bulunacak, geri kalan değerler kaotik bir düzen elde edecek ancak n'incinin solunda ondan daha fazla olmayan değerler olacak ve sağda daha az değil. Yani bu fonksiyonun elemanların orijinal sırasını bozduğu anlaşılmalıdır.
Belgelerde daha fazlasını okuyabilirsiniz (https://www.cplusplus.com/reference/algorithm/nth_element/).

Örnek: vektör a = { 4, 0, 3, 9, 2, 1, 8, 5, 6, 7 }; // 4. indekste öğeyi ara // bağımsız değişkenlerin sırasına dikkat edin nth_element(a.begin(), a.begin() + 4, a.end()); // a = [#, #, #, #, 4, $, $, $, $, $] // burada # <= 4 ve 4 <= $  

Problem

Size q sorgu verilir. Her istek, ni boyutunda bir tam sayı dizisi ve bir k sayısı tarafından verilir. Verilen dizinin sıralanmış düzeninde k. sayıyı çıkarmanız gerekir.

Giriş:
İlk satır q (1 <= q <= 20) sayısını içerir - sorgu sayısı.
Aşağıda isteklerin açıklaması yer almaktadır. 
Her sorgu için, ilk satır ni dizisinin boyutunu (1 <= ni <= 5000) ve k sayısını (1 <=) verir. k <= n i).
Sonraki satır ni tamsayılarını içerir - her birinin mutlak değeri 109'u geçmeyen dizi öğeleri.

Çıktı:
q sayıları yazdırın - soruların yanıtları, her biri ayrı bir satırda.

Örnek:
 

Giriş Çıktı
2
4 2
-5 3 4 3
3 3
-1 -2 -3
3
-1
Write the program below
#include <bits/stdc++.h>
using namespace std;
 
int main()
{
    int q;
	cin >> q;

	while (q--) {
		int n, k;
		cin >> n >> k;

		vector<int> arr(n);
		for (int i = 0; i < n; i++)
			cin >> arr[i]; 
	}
	
	return 0;
} 

     

Program check result

To check the solution of the problem, you need to register or log in!