Mayor o Igual


Submit solution

Points: 100 (partial)
Time limit: 2.0s
Memory limit: 256M

Authors:
Problem type
Allowed languages
C, C#, C++, Java, JS, Pascal, Python, VB

Dada una secuencia de números enteros de tamaño n y un número k, debes imprimir el mayor número entero x en el rango de [1; 10^9] que sea mayor o igual que exactamente k elementos de la secuencia dada.

Note que la secuencia puede tener elementos iguales.

Si no existe dicha x, imprime "-1" (sin las comillas).

Entrada

La primera línea de la entrada consiste de dos números enteros n y k (1 \leq n \leq 2*10^5, 0 \leq k \leq n). La segunda línea de la entrada contiene los n números enteros que conforman la secuencia a_1, a_2, ..., a_n (1 \leq a_i \leq 10^9).

Salida

Imprime el mayor número entero x en el rango de [1; 10^9] que sea mayor o igual que exactamente k elementos de la secuencia dada.

Si no existe dicha x, imprime "-1" (sin las comillas).

Ejemplo #1 de Entrada

7 4
3 7 5 1 10 3 20

Ejemplo #1 de Salida

6

Ejemplo #2 de Entrada

7 2
3 7 5 1 10 3 20

Ejemplo #2 de Salida

-1
Notas

En el primer ejemplo los números 5 y 6 cumplen las condiciones establecidas, por tanto la respuesta es el mayor de estos dos números.

En el segundo caso ejemplo no puedes elegir un número x que sea mayor o igual que solo 2 elementos de la secuencia porque va a ser también mayor o igual que 3 elementos de la secuencia.


Comments


  • 1
    Aicama  commented on Sept. 16, 2024, 3:24 p.m.

    Nota Importante (C#)

    Si intentas implementar esta solución en C#, podrías encontrarte con un System.FormatException en la segunda línea de entrada. Esto suele deberse a la presencia de un espacio adicional o algún carácter inesperado en la cadena, lo que genera el error al intentar iterar sobre los números utilizando .Length después de un split() para convertirlos de string a int.

    Para evitar este problema, en lugar de confiar en .Length, asegúrate de iterar sobre los N números considerando el tamaño exacto de N, manteniendo el control sobre los valores que realmente necesitas procesar.😃


  • 1
    JoJo_Cubano_13  commented on Jan. 22, 2024, 2:59 a.m. edited

    Me están fallando los casos de prueba 6 y 7 solamente. Pero cuando reviso los resultados resulta que los valores están vueltos locos, es decir, en cada submission (Sin hacer ningún cambio al código) devuelven un número diferente. Incluso probé usando long long (Cosa que sabía que no era el problema puesto las restricciones del problema dicen que ningún valor es menor de 10^9. Pero aún así sigue devolviéndome valores alterados, como si nunca se le hubiera asignado ningún valor a la variable, cuando yo, desde que la declaro igualo su valor a 0 (Es decir, que si mi código nunca hiciera nada sobre esa variable debería devolver 0 y no un valor random). Por favor, alguien que me revise el código y me explique que es lo que está pasando. Muchas gracias


    Edit: xD, ya no hace falta, ya me di cuenta que es lo que tenía mal 😅


  • -1
    Mauricio  commented on Jan. 22, 2024, 1:08 a.m.

    .


  • -3
    Osvaldo23  commented on Nov. 14, 2022, 9:52 a.m.

    Sera que estoy ciego o es que estoy loco,pero en el primer caso no hay ningún 6


  • 0
    linkyless  commented on July 21, 2022, 3:42 a.m.

    ¿Puede existir más de una respuesta? Lo pregunto porque en el primer ejemplo el número 5 también es una respuesta válida, debido a que los elementos con index [1,3,4,6] son ​​menores o iguales a 5 y también menores o iguales al propio 6 de la respuesta (en este caso, obviamente menores a ambos).