MOG Round #32 - Discussion by leandro 7 years, 1 month ago

Debido a juegos de datos incorrectos para el problema C de la ronda # 32, el contest MOG Round #32 será unrated. Ya se corrigieron los juegos de datos del problema y se recalificaron los envios del mismo ( ranking ). Lamentamos muchísimo lo ocurrido, trabajaremos más fuerte para que no vuelva a suceder.

Nota adicional : El problema C del concurso llevaba tiempo en nuestro problemset y decidimos ponerlo ahora. Los JDs estaban incorrectos debido al mal uso de la funcion random.randint(a, b) en python que devuelve un entero en el intervalo cerrado [a, b] . El generador usado hacía random.randint(1, n + 1) .

Esperamos que participe en la próxima ronda que será rated y pronto.

Soluciones

A - Cake
Clasificación
Sorting, Greedy

Ordenar de menor a mayor e ir formando la pila de arriba hacia abajo.

Código
122301

B - Tablero
Clasificación
AdHoc

Mientras exista una fila o una columna que sume menor que $0$, multiplicarla por $-1$. En cada paso la suma de la matriz se incrementa en una cantidad positiva, por tanto dicho método converge. Como la matriz es pequeña podemos repetir este proceso hasta obtener la solución.

Código
122302

C - Permutando Secuencias
Clasificación
Math, Chinese remainder theorem

Código
122303

D - Elementos consecutivos
Clasificación
Sorting, Easy

Ordenar, eliminar los números repetidos y buscar la subcadena de números consecutivos más grande.

Código
122304

E - Máquina de caramelos
Clasificación
Binary Search

Código
122305

F - Fábrica de circunferencias
Clasificación
Geometry

Para cada par de puntos $(a, b)$ que no compartan la misma $x$ trazamos la mediatriz y buscamos el punto $p$ donde corta al eje $X$. Nótese que para todo punto seleccionado a la izquierda de $p$, $a$ mantendrá el mismo orden relativo con respecto a $b$ en todos los órdenes válidos. Análogamente sucede para todo punto seleccionado a la derecha de $p$. Luego, $p$ define un orden para $a$ y $b$, uno hacia la izquierda y otro hacia la derecha. Esto lo hacemos para todo par de puntos. Al final, el eje $X$ quedará divido por $k$ puntos diferentes. Estos $k$ puntos definen $k + 1$ segmentos sobre $X$. Cualquier punto dentro de un segmento definirá un único orden en la manera de crecer las circunferencias. Por lo tanto la solución será $k + 1$.




Sample # 1 Sample # 2

Código
122306

G - Día de Acción de Gracias
Clasificación
Brute Force, Easy

Código
122307

KhozmoS 7 years ago

en el problema F , si existiera un punto (X , 0) tal que la distancia de todos los puntos N a el punto (X , 0) es la misma entonces la cantidad de ordenes no seria N! ? o es que es imposible q existan estos en puntos con cordenadas enteras?


leandro 7 years, 1 month ago

albeXL link arreglado, gracias.


albeXL 7 years, 1 month ago

El link de la solucion del problema A te envia para la solucion del problema G


leandro 7 years, 1 month ago

KhozmoS Significa reemplazar cada número $x$ en la secuencia $S$ por el elemento $P[x]$ de la permutacion $P$.


KhozmoS 7 years, 1 month ago

ya abren muchisimas gracias.


KhozmoS 7 years, 1 month ago

Disculpen mi ingorancia , pero alguien me podria decir que es aplicar una secuencia a otra?


leandro 7 years, 1 month ago

KhozmoS prueba nuevamente.


KhozmoS 7 years, 1 month ago

los link de code no me abren


leandro 7 years, 1 month ago

L@z@ro En java debes nombrar Main a la clase principal.


leandro 7 years, 1 month ago

jc Pronto vamos a implementar "clarifications".


L@z@ro 7 years, 1 month ago

me dio Compilation Error el G , utilizando librerias que he usado en el COJ


jc 7 years, 1 month ago

Creo que se deberia implementar una forma para solicitar "clarifications" en el sitio. Si durante un contest un usuario tiene duda o cree que algo no es correcto no tiene forma de hacerselo saber al administrador.