codeforce ------- Menos o igual

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;
}
Publicados 106 artículos originales · ganado elogios 67 · vistas 5410

Supongo que te gusta

Origin blog.csdn.net/qq_45772483/article/details/105050833
Recomendado
Clasificación