Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Ieee problema c
1.
2. Enunciado del problema
Movie Critics
Un festival de cine se acerca a la ciudad Nlogonia. El festival tendrá una duración de
exactamente n días y cada día tendrá un estreno de una película exactamente. Cada película tiene un
género - un número entero de 1 a k .
En el i -ésimo día del festival mostrará una película del género a i . Sabemos que una película de cada
uno de los k géneros se produce en el programa de fiestas por lo menos una vez. En otras palabras,
cada número entero de 1 a k se produce en la secuencia de a 1 , a 2 , ..., a n al menos una vez.
Valentino es un crítico de cine. Él quiere ver algunas películas del festival y luego describir sus
impresiones en su sitio.
Como cualquier persona critica, Valentín es muy susceptible. Después de ver la película de un género
determinado, el estado de ánimo de Valentín se conserva hasta que se ve la película siguiente. Si el
género de la próxima película es la misma, no cambia el estado de ánimo de Valentín. Si los géneros
son diferentes, el estado de ánimo de Valentino cambia de acuerdo con el nuevo género y Valentín
tiene un estrés .
Valentín no puede ver todas las n películas, por lo que decidió excluir de la lista de sus películas a
mirar a uno de los géneros. En otras palabras, Valentín va a elegir exactamente uno de los k géneros y
se salta todas las películas de este género. Es seguro visitar otras películas.
Valentine quiere elegir tal género x ( 1 ≤ x ≤ k ), que el número total de tensiones después de la
película (después de todas las películas de género de x están excluidos) fueron mínimos.
3. Entrada
La primera línea de la entrada contiene dos enteros n y k ( 2 ≤ k ≤ n ≤ 10 5 ), donde n es el
número de películas y k es el número de géneros.
La segunda línea de la entrada contiene una secuencia de n enteros positivos a 1 , a 2 ,
..., a n ( 1 ≤ a i ≤ k ), donde a i es el género de la i -ésima película. Se garantiza que cada
número de 1 a k se produce al menos una vez en esta secuencia.
Salida
Imprimir un solo número - el número del género (entre 1 y k ) de las películas excluidos. Si hay
múltiples respuestas, imprima el género con el número mínimo.
En la primera muestra si se excluyen las películas del género “1”, los géneros 2, 3, 2, 3, 3, 3 permanecen, el
total de tensiones sería 3, si se excluyen las películas del género “2”, los géneros 1, 1, 3, 3, 3, 1, 1,
3 permanecen, los cuales darían una cantidad de 3 tensiones, si se excluyen las películas del género “3”,
quedaría la secuencia 1, 1, 2, 2, 1, 1 , siendo esta de 2 tensiones.
En la segunda muestra cualquier genero que se elija a ser eliminado provocará exactamente 3 tensiones en
la nueva secuencia.
4. Análisis
Sea la secuencia S = x1, x1, x2, x2, x1, x1, x1 . . . xi-1, xi-1, xi-1, xi, xi, xi. .xi , xi-1, xi-1, …xi-1, ……. ..
El problema se reduce a dada una secuencia de n números, los cuales están en el rango de [1,k],
encontrar aquel numero de dicho rango, tal que al quitar todas las apariciones de dicho numero en la
secuencia, la cantidad de cambios que ocurren en la nueva secuencia sea mínima.
En la secuencia S podemos ver que si quitamos el elemento xi el numero total de cambios disminuye
en 2*VAL1 + VAL2
En donde VAL1 es la cantidad de bloques de xi que tienen la forma.. xi-1, xi-1, xi-1, xi, xi, xi. .xi , xi-1, xi-
1, …xi-1, ya que xi produce dos cambios a su derecha e izquierda y si desaparece ese bloque no habrá
cambios en dicho rango ya que el bloque de su derecha es igual al de su izquierda, en otras palabras se
reduce en 2 los cambios.
VAL2 es la cantidad de bloques de xi que tienen la forma .. xi-
1, xi-1, xi-1, xi, xi, xi. .xi , xi+1, xi+1,.. Este bloque produce cantidad de cambios 2
inicialmente pero al retirarlo será un cambio en dicho rango, por lo tanto disminuirá
en 1.
5. Entonces el algoritmo es el siguiente:
1. Hallar la cantidad de cambios que inicialmente hay.
2. Calcular en un array para cada tipo numero la cantidad de cambios que el produce en la secuencia.
3. Buscar aquel numero que tiene la máxima cantidad de cambios que aporta a la secuencia (con esto
se asegura que la cantidad de cambios que había inicialmente será reducida al máximo).
4. Si hay dos o más números que tienen la máxima cantidad de cambios, elegir el menor numero.