Mayor o Igual
Dada una secuencia de números enteros de tamaño y un número , debes imprimir el mayor número entero en el rango de que sea mayor o igual que exactamente elementos de la secuencia dada.
Note que la secuencia puede tener elementos iguales.
Si no existe dicha , imprime "-1" (sin las comillas).
Entrada
La primera línea de la entrada consiste de dos números enteros y . La segunda línea de la entrada contiene los números enteros que conforman la secuencia .
Salida
Imprime el mayor número entero en el rango de que sea mayor o igual que exactamente elementos de la secuencia dada.
Si no existe dicha , 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 y 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 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
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 unsplit()
para convertirlos destring
aint
.Para evitar este problema, en lugar de confiar en
.Length
, asegúrate de iterar sobre losN
números considerando el tamaño exacto deN
, manteniendo el control sobre los valores que realmente necesitas procesar.😃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 😅
.
Sera que estoy ciego o es que estoy loco,pero en el primer caso no hay ningún 6
¿Puede existir más de una respuesta? Lo pregunto porque en el primer ejemplo el número también es una respuesta válida, debido a que los elementos con index son menores o iguales a y también menores o iguales al propio de la respuesta (en este caso, obviamente menores a ambos).