Se le da una secuencia de números enteros de longitud n y número entero número k. Debe imprimir cualquier número entero x en el intervalo de [1; 109] (es decir 1≤x≤109) de tal manera que exactamente k elementos de secuencia dada es menos que o igual a x.Note que la secuencia puede contener igual elements.If no hay tal x, imprimir “-1” (sin comillas) .InputThe primera línea de la entrada contiene número entero n números y k (1≤n≤2⋅105, 0≤k≤n). La segunda línea de la entrada contiene n número entero números a1, a2, ..., an (1≤ai≤109) - la secuencia itself.OutputPrint cualquier número entero x de la gama [1; 109] de tal manera que exactamente k elementos de secuencia dada es menor o igual a x.If no hay tal x, de impresión “-1” (sin comillas) .ExamplesInputCopy7 4
3 7 5 1 10 3 20
OutputCopy6InputCopy7 2
3 7 5 1 10 3 20
OutputCopy-1
NotaEn el primer ejemplo 5 también es una respuesta válida porque los elementos con índices [1,3,4,6] es menor o igual a 5 y, obviamente, menor o igual a 6.In el segundo ejemplo no se puede elegir cualquier número que sólo 2 elementos de la secuencia dada será menor que o igual a este número porque 3
efecto de título:
una secuencia que comprende n elementos, Busco x (1 <= x <= 1e9) que es menor que k elementos exactamente igual a x
#include <iostream>
#include <algorithm>
#include <cstdio>
#include <cstring>
using namespace std;
const int N = 2e5 + 10;
typedef long long LL;
int n, k;
LL a[N];
int main(){
cin >> n >> k;
for (int i = 0; i < n; i ++)
scanf("%d", &a[i]);
sort(a, a + n);
if (!k){
if (a[0] - 1 >= 1) cout << a[0] - 1 << endl;
else cout << -1 << endl;
}
else{
if (a[k] != a[k - 1]) cout << a[k - 1] << endl;
else cout << -1 << endl;
}
return 0;
}