OLIMPIADA DE INFORMATICA DEL ESTADO DE JALISCO OMIJAL 2013 RECOPILACION DE EXAMENES PRIMER EXAMEN OMIJAL 2013 EXAMEN: MODO DEL EXAMEN: DURACION DEL EXAMEN: CATEGORIAS QUE REALIZARON EL EXAMEN: LENGUAJE DE PROGRAMACION UTILIZADO: NOMBRE DEL PROBLEMA EXAMEN A EXAMEN A EXAMEN B EXAMEN C EXAMEN C TEORICO KAREL/C PRESENCIAL 3 HORAS PRIMARIA SECUNDARIA OMI (PREPARATORIA) PREUNIVERSITARIOS UNIVERSITARIOS NINGUNO CATEGORIA CONTENIDO DEL EXAMEN TIEMPO ESTIMADO DE REALIZADO POR: REALIZACION PRIMARIA SECUNDARIA OMI PREUNIVER UNIVER 2 HORAS 1 HORA 1 HORA 1 HORA 1 HORA OMAR ALEJANDRO CHAVEZ CAMPOS JOSE LUIS ROA GARCIA DE LA PAZ JOSE LUIS ROA GARCIA DE LA PAZ JOSE LUIS ROA GARCIA DE LA PAZ JOSE LUIS ROA GARCIA DE LA PAZ EXAMEN A Categoría Primaria (Todo) / Secundaria (Todo) 1. En 2012 nuestra nación cumplió 202 años de vida independiente a esta cantidad réstale 97 y súmale 45, después divide el resultado entre 3. ¿Cuál es el total? a) b) c) d) e) 105 150 50 0 Ninguna de las anteriores 2. Nombre del país donde estas aplicando el examen OMIJAL a) b) c) d) e) Cuba México Estados Unidos Mexicanos Jalisco Guadalajara 3. El valor de la constante PI + 3.1008 es igual a: a) b) c) d) e) 6.2524 3.1416 3 ninguna 5.1522 4. El diámetro de un círculo es igual a 15cm. Si dividimos su radio entre tres, ¿Cuál es el resultado? a) b) c) d) e) 2 cm. 2.5 dm 25 m 2.500 cm Ninguna de las anteriores 5. Fecha en que Cristóbal Colon descubre el nuevo mundo. a) 12 de octubre de 1492 b) 16 de septiembre de 2010 c) 5 de mayo de 1857 d) ninguna 6. Lee el siguiente enunciado y responde Todo hombre es mortal Pedro es hombre. En conclusión… a) b) c) d) Pedro es inmortal Pedro es mortal Todos moriremos Ninguna 7. Lee la carta y responde. ¿Qué tal? Yo estoy bien. Acabo de volver de vacaciones. La semana pasada fui a España. Fui a pasar una quincena en verano. Fui en barco hasta Santander - ¡Qué susto! El problema es que me mareo. Después fui en autocar hasta la costa. ¡Qué divertido! El problema fue que fui con mi madre y mis hermanos - ¡qué decepción! Un día fuimos al campo - ¡qué aburrido! Un día mis hermanos fueron al parque de atracciones y yo fui a la playa para nadar. Hizo calor y bastante sol. Fui a los restaurantes típicos y a los monumentos - ¡Qué ilusión! Quiero volver el próximo año a España pero no sé si será posible. Y tú ¿adónde fuiste? ¿Fuiste con tu familia? ¿Fuiste al norte? Escríbeme pronto Tu amigo Pablo Contesta: ¿Pablo fue a la península Ibérica?" a) b) c) d) Verdad Mentira No se sabe Ninguna 8. Se le pregunta la hora a un señor y este contesta: "Dentro de 20 minutos mi reloj marcara las 10 y 32". Si el reloj esta adelantado de la hora real 5 minutos ¿Qué hora fue hace 10 minutos exactamente? a) 10:10 hrs b) 10:07 hrs c) 10:12 hrs d) 09:50 hrs e) 09:57 hrs 9. Se tiene una colección de 7 tomos de libros de 700 páginas cada uno. Si cada tapa tiene un espesor de 0.25cm y las hojas por cada tomo un espesor de 4cm ¿Cuánto recorrerá una polilla que se encuentra en la primera página del primer tomo a la última página del último tomo? a) b) c) d) e) 15 cm 31 m 3.1 dm 28 cm 31 km 10. De cinco futbolistas donde ninguno tiene la misma cantidad de goles convertidos se sabe que Claudio tiene dos goles más que Abel, Flavio tiene dos goles más que Roberto pero uno menos que Abel y Andrés más goles que Roberto pero menos que Abel. ¿Cuántos goles menos que Claudio tiene Andrés? a) b) c) d) e) 1 4 2 3 5 11. ¿Cuáles son las ventanas del programa de Karel? a) b) c) d) Mundo, Programa, Ejecutar y Ayuda. Nueva, Abrir, Guardar, Guardar como y compilar. Muros y zumbadores. Todos los anteriores. 12. ¿Qué elementos se pueden colocar dentro del mundo de Karel? a) b) c) d) Nuevo Guardar Abrir y Guardar como. Cajas de texto Zumbadores y Muros Posición de Karel 13. ¿Cuáles son los lenguajes que pueden utilizarse para programar Karel? a) b) c) d) C++ y Java Pascal y Visual Pascal y Java C++ y Visual 14. ¿Con que color se distinguen en Karel las instrucciones que no cumplen con la sintaxis esperada? a) b) c) d) Azul Verde Amarillo Naranja 15. ¿Cuál es la ventana de Karel que combina la vista de programación y el mundo a resolver? a) b) c) d) Guardar Abrir Ayuda Ejecutar 16. ¿Cuál es la función de la ventana de ejecutar? a) b) c) d) Plantear el problema a resolver con la colocación de muros y zumbadores Escribir las instrucciones necesarias para la resolución del problema Obtener ayuda del tutorial. Probar la efectividad de tu programación 17. ¿Cuál son dos instrucciones definidas en Karel de manera predeterminada? a) b) c) d) Gira-izquierda y gira-derecha. Avanza y espera. Repetir y gira-derecha. Gira-izquierda y avanza. 18. ¿Cuál es la correcta sintaxis de la función SI? a) b) c) d) Si [condición booleana] entonces Si entonces [Condición booleana] hacer Si [Condición booleana] hacer Si entonces [Condición booleana] 19. ¿Cuál es la correcta sintaxis de la función Mientras? a) b) c) d) Mientras [condición booleana] hacer Mientras [condición booleana] entonces [Condición booleana] mientras hacer [Condición booleana] mientras entonces 20. ¿Cuál es la sintaxis correcta para la definición de nuevas instrucciones que ejecuten más de una sentencia? a) Define-nueva-instrucción [nombre de instrucción] como inicio [Instrucciones] fin; b) Define-nueva-instrucción [nombre de instrucción] como [Instrucciones] c) Definir-nueva-instrucción [nombre de instrucción] como inicio [Instrucciones] fin; d) Definir-nueva-instrucción [nombre de instrucción] como [Instrucciones] 21. ¿Cuál es el objetivo de la ventana de Mundo? a) b) c) d) Plantear el problema a resolver con la colocación de muros y zumbadores Escribir las instrucciones necesarias para la resolución del problema Obtener ayuda del tutorial. Probar la efectividad de tu programación 22. ¿Cuál es el objetivo de la ventana Programa? a) b) c) d) Plantear el problema a resolver con la colocación de muros y zumbadores Escribir las instrucciones necesarias para la resolución del problema Obtener ayuda del tutorial. Probar la efectividad de tu programación 23. ¿Cuál es el objetivo de la ventana de ayuda? a) b) c) d) Plantear el problema a resolver con la colocación de muros y zumbadores Escribir las instrucciones necesarias para la resolución del problema Obtener ayuda del tutorial. Probar la efectividad de tu programación 24. ¿Cuál es la correcta sintaxis de la instrucción “repetir”? a) b) c) d) Repetir [Instrucción] # veces [Instrucción] repetir # veces Repetir # veces [Instrucción] Repetir # veces 25. ¿Cuál es una condición booleana que le ayuda a Karel a detectar que no lleva cargando? a) b) c) d) Ningun-zumbador-en-la-mochila Zumbador-en-la-mochila Parado-sobre-zumbador Sin-zumbadores-en-la-mochila EXAMEN B Categoría OMI (Todo) 1. ¿Cuáles son las ventanas del programa de Karel? a) b) c) d) Mundo, Programa, Ejecutar y Ayuda. Nueva, Abrir, Guardar, Guardar como y compilar. Muros y zumbadores. Todos los anteriores. 2. ¿Qué elementos se pueden colocar dentro del mundo de Karel? a) b) c) d) Nuevo Guardar Abrir y Guardar como. Infinito zumbadores Zumbadores y Muros Posición de Karel 3. ¿Cuáles son los lenguajes que pueden utilizarse para programar Karel? a) b) c) d) C++ y Java Pascal y Visual Pascal y Java C++ y Visual 4. ¿Con que color se distinguen en Karel las instrucciones que no cumplen con la sintaxis esperada? a) b) c) d) Azul Verde Amarillo Naranja 5. ¿Cuál es la ventana de Karel que combina la vista de programación y el mundo a resolver? a) b) c) d) Guardar Abrir Ayuda Ejecutar 6. ¿Cuál es la función de la ventana de ejecutar? a) b) c) d) Plantear el problema a resolver con la colocación de muros y zumbadores Escribir las instrucciones necesarias para la resolución del problema Obtener ayuda del tutorial. Probar la efectividad de tu programación 7. ¿Cuál son dos instrucciones definidas en Karel de manera predeterminada? a) b) c) d) Gira-izquierda y gira-derecha. Avanza y espera. Repetir y gira-derecha. Gira-izquierda y avanza. 8. ¿Cuál es la correcta sintaxis de la función SI? a) b) c) d) Si [condición booleana] entonces Si entonces [Condición booleana] hacer Si [Condición booleana] hacer Si entonces [Condición booleana] 9. ¿Cuál es la correcta sintaxis de la función Mientras? a) b) c) d) Mientras [condición booleana] hacer Mientras [condición booleana] entonces [Condición booleana] mientras hacer [Condición booleana] mientras entonces 10. ¿Cuál es la sintaxis correcta para la definición de nuevas instrucciones? a) Define-nueva-instruccion [nombre de instrucción] como inicio [Instrucciones] fin; b) Define-nueva-instruccion [nombre de instrucción] como [Instrucciones] c) Definir-nueva-instruccion [nombre de instrucción] como inicio [Instrucciones] fin; d) Definir-nueva-instruccion [nombre de instrucción] como [Instrucciones] 11. ¿Cuál es el objetivo de la ventana de Mundo? a) Plantear el problema a resolver con la colocación de muros y zumbadores b) Escribir las instrucciones necesarias para la resolución del problema c) Obtener ayuda del tutorial. d) Probar la efectividad de tu programación 12. ¿Cuál es el objetivo de la ventana Programa? a) b) c) d) Plantear el problema a resolver con la colocación de muros y zumbadores Escribir las instrucciones necesarias para la resolución del problema Obtener ayuda del tutorial. Probar la efectividad de tu programación 13. ¿Cuál es el objetivo de la ventana de ayuda? a) b) c) d) Plantear el problema a resolver con la colocación de muros y zumbadores Escribir las instrucciones necesarias para la resolución del problema Obtener ayuda del tutorial. Probar la efectividad de tu programación 14. ¿Cuál es la correcta sintaxis de la instrucción “repetir”? a) b) c) d) Repetir [Instrucción] # veces [Instrucción] repetir # veces Repetir # veces [Instrucción] Repetir # veces 15. ¿Cuál es una condición booleana que ayuda a Karel a detectar si no existen zumbadora consigo mismo? a) b) c) d) Ningun-zumbador-en-la-mochila Zumbador-en-la-mochila Parado-sobre-zumbador Sin-zumbadores-en-la-mochila 16. Son los caracteres que se utilizan para escribir comentarios en los programas codificados en el editor del lenguaje C: a) b) c) d) e) // y /- -/ /- -/ y /* /* */ y // // y /+ +/ /*/* y /-/ 17. ¿Qué pasa si ejecuto la siguiente instrucción cout<<"HOLA MUNDO"; ? a) b) c) d) e) Manda un mensaje HOLA MUNDO Muestra un mensaje HOLA MUNDO y el valor de una variable Te manda un mensaje de error en el punto y coma Muestra por falta de paréntesis Sale del programa 18. ¿Cuáles son los tipos de instrucciones que se utilizan en la programación? a) b) c) d) e) Instrucciones afirmativas e instrucciones negativas Instrucciones entrada, instrucciones afirmativas y secuenciales simples Instrucciones selectivas, instrucciones simples, instrucciones de salida complejas Instrucciones secuenciales, instrucciones selectivas e instrucciones repetitivas Instrucciones cout/cin, instrucciones if y secuenciales 19. ¿Cuál es la sintaxis de la función cout? a) b) c) d) e) cout("texto"); cout texto; COUT >>"TEXTO"; Cout <<Texto; cout <<"texto"; 20. ¿Cual es la instruccion correcta para mostrar en pantalla el contenido de una variable? a) b) c) d) e) cout("parametro"&var); cin << var; cout << var; cout >> var; cin >> var; 21. ¿Cómo cambiarias el bloque de codigo mostrado en la imagen por un if-else? a) b) c) d) if(x>=30) cout<<"Contratado"; else cout<<"No contratado"; if(x==30) cout<<"Contratado"; else cout<<"No contratado"; if(x>=30) cout<<"Contratado"; else (x<30) cout<<"No contratado"; if(x<=>30) cout<<"Contratado" else (x<30) cout<<"No contratado"; e) if(x<>30) cout<<"Contratado"; if(x<30)cout<<”No contratado”; 22. ¿Qué significa el código que se ve en la imagen? a) b) c) d) e) Si x es mayor o igual que 10 y x es igual a 10 imprima DIEZ DIEZ Si x es menor que 10 y x es igual a 10 imprima DIEZ DIEZ Si x es mayor que 10 y x es igual a 10 imprima DIEZ DIEZ Si x es menor que 10 o x es igual a 10 imprima DIEZ DIEZ Si x es mayor que 10 o x es igual a 10 imprima DIEZ DIEZ 23. En el programa mostrado en la imagen ¿Cual sería el error de programación que contiene? a) b) c) d) e) Faltan comillas en el case Le falta una librería Le falta una llave No tiene ningun error Faltan variables por declarar 24. ¿Cuál es la salida obtenida al ejecutar el siguiente programa? (Suponga que el dato de entrada es el carácter "a") a) b) c) d) e) tecleaste A tecleaste B tecleaste C tecleaste algun otro caracter no imprime nada 25. ¿Qué hace el código escrito en C que se muestra en la imagen? a) b) c) d) e) Muestra en pantalla los números del 1 al 50 Muestra un mensaje solamente una vez Muestra los números de 2 en 2 y el mensaje de SOLACYT Muestra los números del 1 al 50 seguido del mensaje SOLACYT 50 veces Muestra del 1 al 50 y posteriormente el mensaje SOLACYT 26. ¿Cuál es el error que tiene el programa que se muestra en la imagen? a) b) c) d) e) Error en las condiciones del switch Falta incluir una librería Faltan llaves de inicio y fin en el programa No tiene ningún error Falta colocar un break en el default 27. El ciclo repetitivo que se muestra en la imagen cuantas veces imprimirá el texto EXAMEN a) b) c) d) e) 7 0 6 8 Ninguna de las anteriores 28. ¿Que actividad realiza el código mostrado en la imagen? a) b) c) d) e) Calcula el factorial de un numero Calcula e imprime el factorial de n numeros No ejecuta nada porque existe un error en la sentencia for Error le falta una llave en la sentencia for Calcula e imprime la suma de n números 29. ¿Cual es el error que tiene el programa que se muestra en la imagen? a) b) c) d) e) El incremento esta mal escrito La sentencia while le faltan parametros Faltan puntos y comas La sentencia if tiene errores en su definicion No contiene ningun error el codigo 30. ¿Que valores de la variable de control x se imprimen para el bloque de codigo mostrado en la imagen? a) 2 3 4 5 6 7..18 19 20 b) 2 4 6 8 10..18 20 21 c) 2 3 5 7..17 19 21 d) 1 2 3 4 5 6..18 19 20 21 e) 2 4 6 8..16 18 20 EXAMEN C Categoría Preuniversitaria (Todo) / Universitaria (Todo) 1. ¿Cuáles son los tipos de instrucciones que se utilizan en la programación? a) b) c) d) e) Instrucciones afirmativas e instrucciones negativas Instrucciones entrada, instrucciones afirmativas y secuenciales simples Instrucciones selectivas, instrucciones simples, instrucciones de salida complejas Instrucciones secuenciales, instrucciones selectivas e instrucciones repetitivas Instrucciones cout/cin, instrucciones if y secuenciales 2. ¿Cuál es la sintaxis de la función cout? a) b) c) d) e) cout("texto"); cout texto; COUT >>"TEXTO"; Cout <<Texto; cout <<"texto"; 3. ¿Cuál es la instrucción correcta para mostrar en pantalla el contenido de una variable? a) b) c) d) e) cout("parametro"&var); cin << var; cout << var; cout >> var; cin >> var; 4. Son los caracteres que se utilizan para escribir comentarios en los programas codificados en el editor del lenguaje C. a) b) c) d) e) // y /- -/ /- -/ y /* /* */ y // // y /+ +/ /*/* y /-/ 5. ¿Cuál es la sintaxis correcta de la función cin para leer un dato desde el teclado? a) cin >> variable; b) cin >> "variable"; c) cin << variable; d) cin (variable); e) cin ("variable"); 6. ¿Qué pasa si ejecuto la siguiente instrucción cout<<"HOLA MUNDO"; ? a) b) c) d) e) Manda un mensaje HOLA MUNDO Muestra un mensaje HOLA MUNDO y el valor de una variable Te manda un mensaje de error en el punto y coma Muestra por falta de parentesis Sale del programa 7. El formato que debe de un PRINTF para mostrar un numero flotante con cuatro decimales a) b) c) d) e) printf(" % 4d ",x); printf(" % .4f ",x ); scanf(" %.f ",&x); scanf(" %.4d ",&x); puts(4x); 8. ¿Cuál es la instrucción que lee un valor desde el teclado en C? a) b) c) d) e) scanf printf cin cout opciones a y c 9. ¿Cuáles son las estructuras selectivas en C? a) b) c) d) e) if, switch y default getch y switch if/else, break/case y return if, if/else y switch if, scanf y switch 10. ¿ Cual es la sintaxis correcta de la estructura if en C? a) b) c) d) e) if condicion sentencias; if{condicion} sentencias; if (condicion) {sentencias ;} if{ sentencias;}condicion If (condicion) sentencias 11. ¿Cómo se lee la siguiente expresión if ((a%2)= =0)? a) b) c) d) e) si el valor de a es igual a cero si el valor de a es igual a 1 si el valor de a es residuo de cero si el resultado de a modulo 2 es igual a cero si el 2 porciento de a es igual a cero 12. ¿Cómo cambiarias el bloque de código mostrado en la imagen por un if-else? a) b) c) d) e) if(x>=30) cout<<"Contratado"; else cout<<"No contratado"; if(x==30) cout<<"Contratado"; else cout<<"No contratado"; if(x>=30) cout<<"Contratado"; else (x<30) cout<<"No contratado"; if(x<=>30) cout<<"Contratado" else (x<30) cout<<"No contratado"; if(x<>30) cout<<"Contratado"; if(x<30)cout<<”No contratado”; 13. ¿Qué significa el código que se ve en la imagen? a) b) c) d) e) Si x es mayor o igual que 10 y x es igual a 10 imprima DIEZ DIEZ Si x es menor que 10 y x es igual a 10 imprima DIEZ DIEZ Si x es mayor que 10 y x es igual a 10 imprima DIEZ DIEZ Si x es menor que 10 o x es igual a 10 imprima DIEZ DIEZ Si x es mayor que 10 o x es igual a 10 imprima DIEZ DIEZ 14. Selecciona la sintaxis correcta de la estructura switch en C a) switch(variable){ case const1:sentencias; break; case const2:sentencias; break; default: sentencias;} b) switch(variable) case const1:sentencias; case const2:sentencias; default: sentencias;break c) switch(variable){ case const1:sentencias; case const2:sentencias; default: sentencias;break;} d) switch(variable){ case const1 sentencias; break; case const2 sentencias; break; default sentencias;} e) switch variable{ case const1 sentencias; break; case const2 sentencias; break; default sentencias;break;} 15. ¿Cuáles son las estructuras repetitivas en el lenguaje C? a) b) c) d) e) if, for, switch y default do/while, for y while if/else, break, case y return while, if/else y switch gotoxy, delay y texcolor 16. Sintaxis correcta de la estructura while en el lenguaje C a) b) c) d) e) while(sentencias;){condicion} while{condicion} sentencias; while(condicion){sentencias;} (condicion)while{sentencias;} {sentencias;}while(condicion); 17. Sintaxis correcta de la estructura do_while en el lenguaje C a) b) c) d) e) while(sentencias;)do{condicion} do while{condicion} sentencias; while do(condicion){sentencias;} do(condicion)while{sentencias;} do{sentencias;}while(condicion); 18. Sintaxis correcta de la estructura for en el lenguaje C a) for(inicializacion; condicion; incremento) sentencia; b) c) d) e) for(condicion;inicializacion; incremento) sentencia; for(incremento;condicion;inicializacion) sentencia; for(inicializacion condicion incremento) sentencia; for(inicializacion:condicion:incremento) sentencia; 19. En el programa mostrado en la imagen ¿Cual sería el error de programación que contiene? a) b) c) d) e) Faltan comillas en el case Le falta una librería Le falta una llave No tiene ningún error Faltan variables por declarar 20. ¿Cuál es la salida obtenida al ejecutar el siguiente programa? (Suponga que el dato de entrada es el carácter "a") a) b) c) d) e) tecleaste A tecleaste B tecleaste C tecleaste algun otro caracter no imprime nada 21. ¿Qué hace el código escrito en C que se muestra en la imagen? a) b) c) d) e) Muestra en pantalla los números del 1 al 50 Muestra un mensaje solamente una vez Muestra los números de 2 en 2 y el mensaje de SOLACYT Muestra los números del 1 al 50 seguido del mensaje SOLACYT 50 veces Muestra del 1 al 50 y posteriormente el mensaje SOLACYT 22. ¿Cuál es el error que tiene el programa que se muestra en la imagen? a) b) c) d) e) Error en las condiciones del switch Falta incluir una librería Faltan llaves de inicio y fin en el programa No tiene ningún error Falta colocar un break en el default 23. El ciclo repetitivo que se muestra en la imagen cuantas veces imprimirá el texto EXAMEN a) b) c) d) e) 7 0 6 8 Ninguna de las anteriores 24. ¿Qué actividad realiza el código mostrado en la imagen? a) b) c) d) e) Calcula el factorial de un numero Calcula e imprime el factorial de n números No ejecuta nada porque existe un error en la sentencia for Error le falta una llave en la sentencia for Calcula e imprime la suma de n números 25. ¿Cuál es el error que tiene el programa que se muestra en la imagen? f) g) h) i) j) El incremento esta mal escrito La sentencia while le faltan parámetros Faltan puntos y comas La sentencia if tiene errores en su definición No contiene ningún error el código 26. ¿Qué valores de la variable de control x se imprimen para el bloque de código mostrado en la imagen? a) b) c) d) e) 2 3 4 5 6 7..18 19 20 2 4 6 8 10..18 20 21 2 3 5 7..17 19 21 1 2 3 4 5 6..18 19 20 21 2 4 6 8..16 18 20 27. La lista de valores pasados a una función son separados por el operador... a) b) c) d) e) (coma) ; (punto y coma) ) . (punto) * (asterisco) 28. Cuando no es especificado un tipo de regreso para una función siempre será supuesto por el compilador como... a) b) c) d) e) float int char void doublé 29. ¿Cuál es la sintaxis de una declaración (o prototipo) de función? a) b) c) d) e) tipo_de_funcion nombre_de_funcion(lista_de_parametros) nombre_de_funcion(variables_de_entrada) tipo_de_funcion nombre_de_funcion() tipo_de_funcion nombre_del_tipo(tipo_dato lista_de_parametros) void nombre_de_funcion(int) 30. Bloque de código correcto para la definicion de una funcion que suma dos numeros en el lenguaje C. a) b) c) d) int suma(int a,int b) {int c = a+b; return c;} suma(int a,b) {return (a+b);} int suma( a,b int) {suma = a+b;} return suma int(int a,b) {suma = a+b;} e) int suma( ab:int;, suma:int) {suma = a+b; return suma;} SEGUNDO EXAMEN OMIJAL 2013 EXAMEN: MODO DEL EXAMEN: DURACION DEL EXAMEN: CATEGORIAS QUE REALIZARON EL EXAMEN: LENGUAJE DE PROGRAMACION UTILIZADO: NOMBRE DEL PROBLEMA REVANCHA PASTEL GANADO ALBAÑILERIA ALBAÑILERIA 2 ESPEJO 2 PODANDO CUENTAS TRADUCIENDO RAICES NESIMAS DIVISIONES CATEGORIA PRIMARIA PRIMARIA SECUNDARIA PRIMARIA SECUNDARIA OMI PRIMARIA SECUNDARIA OMI SECUNDARIA OMI OMI OMI PREUNIVER PREUNIVER UNIVER PREUNIVER UNIVER UNIVER KAREL/C EN LINEA 3 DIAS PRIMARIA SECUNDARIA OMI (PREPARATORIA) PREUNIVERSITARIOS UNIVERSITARIOS KAREL / C CONTENIDO DEL EXAMEN LENGUAJE REALIZADO POR: UTILZADO KAREL MANUEL FERNANDO GUZMAN MUÑOZ KAREL JAVIER PADILLA KAREL JAVIER PADILLA KAREL JOSE LUIS ROA GARCIA DE LA PAZ KAREL JOSE LUIS ROA GARCIA DE LA PAZ KAREL KAREL C / C++ C / C++ JOSE LUIS ROA GARCIA DE LA PAZ MANUEL FERNANDO GUZMAN MUÑOZ MANUEL FERNANDO GUZMAN MUÑOZ JOSE LUIS ROA GARCIA DE LA PAZ C / C++ GILBERTO VARGAS C / C++ GILBERTO VARGAS 1 - Revancha (revancha.txt) por: Fernando Guzmán Karel está muy triste y decepcionado pues en la última OMI Nacional, Jalisco solo gano Plata y Bronce, así que ha decidido poner todo su empeño para regresar por el ORO en este 2013. Se dio a la tarea de buscar buenos ex olímpicos que apoyen a los nuevos participantes, pero sabe que están -como todo buen Programador- escondidos en alguna esquina afortunadamente usando la aplicación de ”amigos” ya sabe dónde están e ira por ellos. 1. Karelroa está en la esquina superior derecha y se resiste a salir de su sueño azul. 2. Kareltach como siempre está recluido en el CIDETEC ubicado en la Esquina Sur-Derecha de la Ciudad. 3. Kareljav parece seguir los pasos de Kareltach al estar también en la esquina Sur pero en su caso está en la Esquina Izquierda donde la Continental tiene su planta. Problema: La tarea de Karel consiste en ir por los 3 karelmaestros y traerlos al cuartel general de OMIJal desde donde organizaran los exámenes, entrenamientos y planearán la revancha! Condiciones: Karel inicia en la esquina superior izquierda orientado al sur. La ciudad es rectangular. Cada Karelmaestro está colocado en la esquina que le corresponde y se separa del mundo real con una pared vertical siempre de 1 posición de largo La revancha no es buena, mata el alma y la envenena, pero…… Karel deberá dejar en su casa a cada Karelmaestro. Los Karel maestros están representados con zumbadores de 1, 2 o 3, y no siempre tiene cada uno el mismo valor. No importa donde termine Karel. Siempre habrá un librero . Ejemplo 1: ENTRADA SALIDA 2 - Pastel (pastel.txt) por: Javier Padilla Debido a la reciente temporada navideña, Karel se ha quedado sin dinero por participar en tantos intercambios. Así que ha tenido que entrar a trabajar en una pastelería donde su tarea principal es poner betún en los pasteles (representado por zumbadores). Problema Ayuda a Karel a colocar el betún en cualquier tipo de pastel. Consideraciones Karel inicia orientado al norte junto al primer punto donde se debe colocar el betún. En cada lugar del contorno del pastel solo podrá existir UN solo zumbador. No importa la orientación y posición final de Karel. La base del pastel siempre será una línea recta y con grosor de una avenida. A Karel le gusta el pastel con chocolate. En la parte inferior del pastel NUNCA debes colocar betún (zumbadores). Karel siempre tiene en su mochila los zumbadores justos para decorar el pastel. Se desconoce totalmente la forma del pastel, puede ser regular (figuras geométricas) o totalmente amorfo. Mundo ejemplo: Entrada: Salida: En el ejemplo Karel comienza con 12 zumbadores en su mochila 3 - Ganado (ganado.txt) por: Javier Padilla Karel ha encontrado otro trabajo, ahora por las tardes, en esta ocasión es todo un jinete que cuida del ganado de ciudad CrowKar. Lamentablemente al llegar al establo se da cuenta que todo el ganado se ha desbalagado por toda el área. Problema Ayuda a Karel a llevar a todo el ganado al establo. Consideraciones Se desconoce la orientación y posición inicial de Karel. Karel debe terminar dentro del establo junto con todo el ganado. Karel ama las vacas. Las vacas son representadas por conjunto de zumbadores de entre 1 – 99 zumbadores. Karel comienza con infinitos zumbadores en su mochila. El área siempre es rectangular sin paredes en su interior, solo las que delimitan el mundo. El establo siempre estará en la parte inferior del lado izquierdo con un tamaño de 1 x 1 casillas. Mundo ejemplo: Entrada: Salida: 4 - Albanilería (albanil.txt) por: José Luis Roa García Karel quiere comprarse la nueva consola de videojuegos llamada KBOX 480 por lo que ha decidido buscar un trabajo para poder ahorrar dinero y poder comprar dicho artículo, por lo que acudió a la agencia de búsqueda de trabajo de Karelostotilán y le han encontrado uno como albañil reparando paredes destruidas. Contento con su nuevo trabajo Karel se puso manos a la obra PROBLEMA Ayuda a Karel a tapar los agujeros de las paredes colocando zumbadores como ladrillos CONSIDERACIONES Karel inicia dentro de la casa pegado a cualquiera de las paredes de la casa (nunca inicia pegado a algún agujero) en cualquier orientación Karel quiere jugar King of Zumbadores 2013 En caso de encontrar algún agujero en la pared Karel colocará un solo zumbador para tapar dicho agujero No importa la orientación ni la posición final de Karel La casa siempre tiene 4 lados, no necesariamente iguales En este problema Karel tendrá la siguiente cantidad de zumbadores: o 50% de los casos Karel tendrá zumbadores infinitos o 50% de los casos Karel tendrá la cantidad mínima necesaria para tapar todos los agujeros EJEMPLO ENTRADA SALIDA 5 - Albanilería 2 (albanila.txt) por: José Luis Roa García Karel debido al éxito que tuvo al comprarse la consola de videojuegos KBOX 480 ahorrando como albañil (lo cual le dio mucha experiencia y fama en karelostotitlan) un famoso constructor de edificios en Zumbandia lo ha contratado para que repare un famoso hotel en las afueras de la ciudad, el cual tiene una arquitectura muy peculiar. Emocionado por la gran cantidad de dinero que obtendrá por el trabajo Karel se pone en acción. PROBLEMA Ayuda a Karel a tapar los agujeros de las paredes de cada nivel del colocando zumbadores como ladrillos, la cantidad de ladrillos a colocar por posición corresponde al nivel de profundidad del piso a reparar (Ahí está lo peculiar de su arquitectura y además de la complejidad de su nuevo trabajo) CONSIDERACIONES Karel inicia fuera del hotel pegado a cualquiera de las paredes del mismo (nunca inicia pegado a algún agujero) en cualquier orientación El hotel contiene figuras de 4 lados concéntricas con una calle de separación entre uno y otro nivel, un nivel al menos tendrá el tamaño de una pared por lado Karel quiere estudiar Arquitectura Antigua La profundidad máxima del hotel viene dada por la capacidad máxima del mundo de karel En caso de encontrar algún agujero en la pared Karel colocará un montón de zumbadores para tapar dicho agujero, la cantidad de zumbadores dependerá de la profundidad del piso que este reparando Karel Karel debe terminar en cualquier posición fuera del hotel ya reparado Se puede acceder a todos los niveles por algún lugar, a excepción del ultimo nivel ya que este siempre se encuentra en perfectas condiciones Los niveles se numeran de afuera hacia dentro En este problema Karel tendrá la siguiente cantidad de zumbadores: o 50% de los casos Karel tendrá zumbadores infinitos o 50% de los casos Karel tendrá la cantidad mínima necesaria para tapar todos los agujeros EJEMPLO ENTRADA SALIDA 6 - Espejo 2 (espejo.txt) por: José Luis Roa García Karel debido a la emoción de conocer el año pasado a la reina invertida ha decidido sentarse de nuevo a la sombra de aquel gran árbol para quedarse dormido nuevamente y poder ir a su encuentro por segunda ocasión. Al despertar observo que se encontraba en un país totalmente diferente al que visito anteriormente Karel extrañado busco ayuda y encontró a un aldeano de aquel raro país y le informo que la reina se encontraba de vacaciones pero que le dejo un mensaje para el día que Karel regresara y no encontrara la salida nuevamente. Esta vez Karel debe decidir si una figura es el reflejo exacto de otra colocada en el mundo así el portal se abriría nuevamente PROBLEMA Ayuda a Karel a salir del mundo revisando las dos figuras ubicadas en el mundo, colocando a Karel viendo hacia el norte en caso que si sean iguales o hacia el sur en caso contrario CONSIDERACIONES Los casos para este problema se encuentran agrupados, es decir cada caso está compuesto por más de un mundo a resolver, por lo tanto para obtener los puntos del caso debes de contestar correctamente a cada uno de los mundos que lo componen Las figuras están formadas por montones de solamente 1 zumbador y son de forma irregular Las figuras están separadas por una calle del mundo sin zumbadores La figura original se encuentra en la parte norte de la calle vacía, la figura reflejada se encuentra en la parte sur Karel inicia en la calle vacía debajo del primer zumbador de la figura original (NO ENCIMA DEL ZUMBADOR) mirando hacia el este. Ambas figuras empiezan en la misma posición, pero no se sabe si tienen el mismo ancho o el mismo alto. Las figuras no contienen huecos en su interior ni en su base. En caso de encontrar un espacio sin zumbador indica que la figura ha terminado en esa dirección Karel extraña a la reina invertida Karel debe terminar en la misma posición donde inicio y además debe decirnos si la figura reflejada es exactamente igual a la original volteando hacia el norte, en caso que no lo sea deberá voltear hacia el sur EJEMPLOS ENTRADA SALIDA ENTRADA SALIDA ENTRADA SALIDA ACLARACION SOBRE CASOS AGRUPADOS Tomando como referencia el ejemplo anterior como si fuera un solo caso con 3 mundos agrupados los puntos quedarían asignados de la siguiente manera. Suponiendo que sean 10 casos con valor de 10 puntos cada uno: MUNDO 1 MUNDO 2 MUNDO 3 PUNTOS 0 PUNTOS 0 PUNTOS 0 PUNTOS 0 PUNTOS 0 PUNTOS 0 PUNTOS 0 PUNTOS 10 PUNTOS Por lo tanto queda claro que solo si resuelves CORRECTAMENTE TODOS los mundos que componen al caso obtendrás el puntaje 7 - Podando (podando.txt) por: Fernando Guzmán Karel es muy buen estudiante, pero tiene un gran defecto es muy bajito ahora que es navidad Don Karelon le compró un árbol de navidad muy alto y Karel se siente incómodo pues no alcanza a poner los adornos de más arriba y mucho menos la estrella, así que ha decido tomar tijera en la mano y cortar un poco la altura del Árbol. Problema: La tarea de Karel consiste en quitar un nivel por ambos lados del árbol de navidad, el cual siempre es piramidal, así de simple. Condiciones: Karel inicia en la esquina inferior izquierda del árbol orientado al norte. El árbol siempre es piramidal uniforme y está compuesto de zumbadores tipo 1 Karel deberá recorrer la diagonal izquierda y derecha del árbol quitando un nivel de zumbadores. En cualquier lugar que te sorprenda un arbol grande de navidad bienvenido sea siempre y cuando tengas unas tijeras a la mano. No importa donde termine Karel. Karel es fanático del Copy-Paste pero ahora no lo podrá usar El árbol nunca estará pegado a alguna pared superior o lateral Ejemplo 1: ENTRADA SALIDA 8 – Cuentas (cuentas.cpp) por: Fernando Guzmán TIEMPO LIMITE 1 SEGUNDO Tenemos un paradigma científico el cual ni los más grandes matemáticos han podido resolver de forma mental, tu deberás crear un sencillo programa que ayude a tal misión y enviárselas por bluetooth. PROBLEMA: Se inicia solicitando un número que indica el número de veces a repetir el proceso y 2 números base ( cada uno entre 0 y 100 ), la idea es sumar los 2 primeros números y descontar un “paso” , enseguida sumar el segundo número y el resultado de la primer suma (ese será el 3er. número) así progresivamente hasta llegar al paso 0 donde deberás imprimir el resultado que tengas calculado, cabe aclarar que para memorizar el proceso tu mente te permite recordar del 0 al 9, por lo que si una suma es mayor a 9, deberás eliminar el primer digito ( si tienes 7 y 8 la suma seria 15, para efecto de este programa deberás quedarte solo con el 5. ESPECIFICACIONES: El número que indica la repetición de proceso puede estar entre 1 y 10000 Los números base son enteros entre 0 y 9 Realiza un programa que solicite primeramente el número de vueltas a realizar, así como los 2 números base y con ellos se obtenga un número final que deberás desplegar en pantalla EJEMPLO Entrada: 4 Salida: 3 6 3 EXPLICACIÓN El proceso deberá repetirse 4 veces, en la primer vuelta se suma 6 + 3 y se obtiene 9, en la segunda vuelta se suma 3 + 9 y se obtiene 12 pero con la regla del dígito se queda solo con el 2, en la tercer vuelta se suma 9 + 2 y el resultado es 11, se queda con el 1 , y en la cuarta vuelta se suma 2 + 1 y por ello el resultado es 3. 9 – Traduciendo (traduciendo.cpp) por: José Luis Roa García TIEMPO LIMITE 1 SEGUNDO Karel necesita un programa que le ayude a la traducción de textos a números. Por lo que en este problema le ayudaras a Karel a implementar la traducción de texto a números. PROBLEMA Se trata de traducir uno o más enteros escritos por medio de texto a su representación numérica. Los números a traducir tendrán valores entre -99 y 99. Ésta es la lista de todas las palabras que el programa debe tratar: negativo, cero, uno, dos, tres, cuatro, cinco, seis, siete, ocho, nueve, diez, once, doce, trece, catorce, quince, veinte, treinta, cuarenta, cincuenta, sesenta, setenta, ochenta, noventa, y ENTRADA La entrada del programa consiste de una secuencia de líneas. Cada línea contiene un número a traducir, formado íntegramente por las palabras listadas en el apartado anterior y separadas por caracteres "espacio". Se supone que la secuencia de palabras representa un número correcto. SALIDA La salida del programa contendrá una línea por cada número de la entrada. La línea k-ésima de la salida será la representación numérica del número escrito en texto en la línea k-ésima de la entrada. No deben escribirse ni puntos decimales ni similares; tan solo las cifras y, si es negativo, el signo '-'. EJEMPLO ENTRADA SALIDA seis negativo setenta y siete veinte y dos 6 -77 22 10 – Raíces N-esimas (raices.cpp) por: Gilberto Vargas TIEMPO LIMITE 1 SEGUNDO Cuando tenemos un radical, éste se puede simplificar factorizando en 2 números, uno con raíz y el otro sin raíz. Podemos sacar el numero con raiz del radical haciendo la operación. Por ejemplo, 3 tenemos √135, Podemos factorizarlo en 27*5, 27 tiene raíz cúbica, por lo que puede salir y nos 3 quedaria 3 √5. Tu tarea es simplificar una lista de radicales, de modo que puedas simplificarlo lo más que puedas. ENTRADA La entrada consiste en múltiples casos de prueba. Por cada caso de prueba, 2 números separados por un espacio. El primer número X, el valor dentro del radical. El segundo número R, la base de la raíz. La entrada terminará al ingresar un 0. SALIDA Por cada caso de prueba, deberás imprimir el valor que queda fuera del radical, un espacio, la base del radical, una ‘v’ (minúscula y sin los apostrofes) y el valor que queda dentro. En caso de que no quede ningún valor dentro del radical, deberás imprimir solamente el resultado. Si no es posible simplificar el valor, solo imprime la base, la ‘v’ y el radical. EJEMPLO Entrada Salida 135 3 27 2 83 72 1 10 0 3 3v5 3 2v3 2 2v7 1 Limites 1<=X<=1,000,000 1<R<=10 En ningún caso, habrán más de 2,500 números. 11 – Divisiones (divisiones.cpp) por: Gilberto Vargas TIEMPO LIMITE 3 SEGUNDOS Karel se encontraba realizando su tarea de precálculo y se encontró con unos ejercicios muy complicados. Los ejercicios contenían divisiones de polinomios. Karel los ha encontrado muy complicados. Definamos Pol(x) como un polinomio de grado mayor a 1 y a Pol(d) como un polinomio lineal donde el coeficiente de la x siempre será 1. El objetivo es encontrar el cociente y la división de Pol(x)/Pol(d). Ayuda a Karel a realizar su tarea. ENTRADA En la primer línea, el número T, indicando cuántas divisiones tendrás que realizar. Por cada división, en la primer línea un número G, que es el grado del polinomio. En la siguiente línea, G+1 números, indicando el coeficiente del enésimo término del polinomio, recuerda que los polinomios se ordenan de mayor a menor según su exponente. En la siguiente línea un número C, el valor del término independiente de Pol(d). SALIDA Una línea por cada división respetando las siguientes reglas, si el coeficiente del monomio es 0 se omite. Deberás imprimir el signo (en el caso del primer término se omite si es positivo). El coeficiente se imprimirá solo si es distinto a 1. Cada término estará separado por un espacio. Después, separado por un espacio, la palabra “Residuo:” y un espacio, y por último el residuo de la división. EJEMPLO Entrada Salida 2 2x^3 -2x^2 -4x Residuo: 10 4 x^4 +2x^3 +3x^2 +6x +13 Residuo: 28 2 -6 0 9 8 -2 5 1 0 -1 0 1 2 -2 División realizada en el primer caso: Límites 1<=T<=1,000,000 2<=G<=10 TERCER EXAMEN OMIJAL 2013 EXAMEN: MODO DEL EXAMEN: DURACION DEL EXAMEN: CATEGORIAS QUE REALIZARON EL EXAMEN: LENGUAJE DE PROGRAMACION UTILIZADO: NOMBRE DEL PROBLEMA NEUTRON GIRAIZQUIERDA PREDIAL LABERINTO ALBAÑILERIA 3 FALTANTE MAXIMUS CHOCOLATES PAPELITOS CATEGORIA PRIMARIA PRIMARIA SECUNDARIA PRIMARIA SECUNDARIA OMI PRIMARIA SECUNDARIA OMI OMI PREUNIVER UNIVER PREUNIVER UNIVER PREUNIVER UNIVER PREUNIVER UNIVER KAREL/C PRESENCIAL 3 HORAS PRIMARIA SECUNDARIA OMI (PREPARATORIA) PREUNIVERSITARIOS UNIVERSITARIOS KAREL / C CONTENIDO DEL EXAMEN LENGUAJE REALIZADO POR: UTILZADO KAREL MANUEL FERNANDO GUZMAN MUÑOZ KAREL MANUEL FERNANDO GUZMAN MUÑOZ KAREL JOSE LUIS ROA GARCIA DE LA PAZ KAREL JOSE LUIS ROA GARCIA DE LA PAZ KAREL C / C++ JOSE LUIS ROA GARCIA DE LA PAZ JOSE LUIS ROA GARCIA DE LA PAZ C / C++ GILBERTO VARGAS C / C++ GILBERTO VARGAS C / C++ GILBERTO VARGAS 1 - Neutron (neutron.txt) por: Fernando Guzmán ::Primaria:: KarelNeutron ha estado leyendo libros de Ciencias para saber que es el Clonar y parece ya ha descubierto como hacer clonaciones. Problema: Ayuda a KarelNeutron a clonar la fila de zumbadores que tiene en su casa colocando una copia idéntica al lado derecho de la fila original Condiciones: La fila de zumbadores siempre será de UN zumbador por lugar No habrá espacios vacíos entre los zumbadores La fila de zumbadores siempre va de abajo para arriba No habrá paredes junto a la fila de zumbadores Karel tiene infinitos zumbadores en su mochila Karel debe terminar rápido para irse a jugar Plants vs Zombies No importa donde termine Karel. Karel puede dejar o comerse la fila original de zumbadores Ejemplo: ENTRADA SALIDAS VALIDAS 2 – Gira izquierda (giraizq.txt) por: Fernando Guzmán ::Primaria, Secundaria:: Karel está en la feria del pueblo, y en la tómbola se ganó un bote de spray con el permiso para poder aventar pintura para cualquier lugar así que esta decidido a aprovechar la oportunidad y rociar pintura para los 4 lados ( este, oeste, norte y sur ) Problema: La acción que realizara KarelPaint será tomar su spray el cual tiene 4 puntos pegados y en cada uno el zumbador indica la distancia del spray, ayuda a KarelPaint a lanzar la pintura hasta donde los zumbadores le permitan. Los 4 puntos de pintura siempre estas juntos, 2 en cada nivel, el punto superior izquierdo deberá lanzar su pintura hacia el oeste (lado izquierdo), el punto inferior izquierdo lo lanza hacia el sur (abajo), el punto inferior derecho lo lanzara al este (derecha) y por último el punto superior derecho lo lanzara al norte (arriba) Condiciones: Karel inicia en el punto inferior izquierdo orientado al norte No habrá paredes que estorben a la pintura Karel no tiene zumbadores en su mochila En cualquier lugar que te sorprenda un Zumbador bienvenido sea No importa donde termine Karel. Karel deberá dejar zumbador por zumbador hasta que se le terminen Ejemplo 1: ENTRADA SALIDA 3. Predial (predial.txt) por: José Luis Roa García ::Primaria, Secundaria:: Karel como todo buen ciudadano debe pagar el predial de su casa en karelotostitlan por lo que se dirige a las oficinas municipales para hacerlo, pero al llegar se encuentra con una gran cantidad de zumbadores que desean hacer lo mismo que Karel, tan grande es la fila que le dan vuelta a la manzana. Tanta gente hizo que los encargados de cobrar el predial no supieran que hacer así que le pidieron ayuda a Karel para que pudieran atender a la gente PROBLEMA Ayuda a Karel a acomodar a la gente en las distintas cajas de cobro del predial CONSIDERACIONES Karel inicia al final de la fila orientado en el sentido de la fila La fila puede llegar a ser tan grande que le puede casi dar la vuelta completa a la manzana (la cual es de forma cuadrada de tamaño mínimo de 3X3) y al menos siempre existirá una persona formada Al final de la fila esta la entrada a las oficinas No existen zumbadores dentro de la oficina Dentro de las oficinas están ubicadas las cajas de cobro representadas por una serie de paredes continuas que atraviesan todo el edificio de este a oeste. Karel debe distribuir lo más uniformemente posible a las personas que encontró formadas para ser atendidas en las cajas colocándolas en montones de zumbadores empezando en la caja que este en la esquina izquierda No importa la orientación ni la posición final de Karel Karel es buen ciudadano pero odia los trámites burocráticos Karel inicia sin zumbadores en la mochila EJEMPLOS ENTRADA SALIDA 4. Laberinto (lab.txt) por: José Luis Roa García ::Primaria, Secundaria, OMI:: Karel emocionado por el k-arnabal que se celebra en karelostotitlán cada año en el mes de febrero se preparó y se dirigió a la feria que se instala en esas fechas; la novedad de este año en la feria y en el k-rnabal es la atracción llamada el laberinto obscuro. Como Karel es amante de los laberintos se decidió formar en la fila que se hacia para entrar a dicha atracción, pero al leer las instrucciones se sintió un poco confundido y siente que se puede perder dentro del laberinto por lo que saco su c-lular y te solicito ayuda para poder resolver dicho laberinto. PROBLEMA Ayuda a Karel a poder entrar y resolver el laberinto siguiendo las instrucciones de dicha atracción CONSIDERACIONES En el laberinto y en el túnel te encontrarás algunos zumbadores perdidos recógelos y ayúdalos a llegar al final del laberinto A Karel le gusta resolver laberintos Para salir del laberinto avanzarás hasta que una pared te lo impida por lo que giraras hasta encontrar un camino diferente al que usaste para llegar ahí. El final del laberinto lo identificarás porque todos los caminos (menos por el que llegaste) se encuentran bloqueados por una pared Dejaras a todos los zumbadores que encontraste durante el laberinto en la salida del mismo y te apagaras. EJEMPLOS ENTRADA SALIDA 5. Albanilería 3 (albanil.txt) por: José Luis Roa García ::OMI:: Karel actualmente es uno de los mejores restauradores de construcciones a nivel internacional debido a su éxito en albañilería 1 y 2, por lo que un grupo de zumbadores egipcios han venido en su búsqueda para restaurar antiguas construcciones de la época faraozumbadureica que se han deteriorado por el transcurso de los años. Karel con el fin de aun hacerse más famoso ha decidido aceptar el trabajo tramito su visa y se dirigió a Egipto a poner las manos a la obra. PROBLEMA Ayuda a Karel a completar las estructuras de manera que queden completas CONSIDERACIONES Karel inicia en la parte inferior de la estructura a reparar La estructura a reparar es totalmente simétrica, es decir el lado derecho es idéntico al lado izquierdo El eje de simetría es colocado en la misma posición donde inicia Karel Al menos la mitad de la estructura está completa, por lo que únicamente tendrás que reparar la mitad contraria. Los daños de la estructura se calculan en un máximo del 50% de su construcción Karel ama el medio oriente. La mitad que no necesita reparación se ubicara en la dirección en la que Karel apunte al inicio del problema, por lo tanto Karel apuntará hacia el este u oeste únicamente. Para restaurar la estructura Karel colocara un zumbador en la posición en donde se supone que encontraría una pared. Karel solo debe dejar un solo zumbador si ya fue colocado uno NO se debe colocar otro zumbador en esa posición, un solo zumbador sustituye las paredes necesarias (Ver ejemplos). Karel no deberá dejar ningún zumbador donde no corresponda dejarlo, mas sin embargo de considerarlo necesario puede colocar alguno en alguna posición durante la ejecución y después retirarlo. Para esta problema Karel contara con la siguiente cantidad de Zumbadores en la mochila: o En el 50% de los casos Karel tendrá la cantidad exacta de zumbadores o En el 30% de los casos Karel tendrá 1 zumbador adicional a los necesarios para cumplir la tarea o En el 20% de los casos Karel tendrá zumbadores infinitos EJEMPLOS ENTRADA SALIDA 6 – Faltante (faltante.cpp) por: José Luis Roa García TIEMPO LIMITE 2 SEGUNDOS KRoa compró una tarjeta para KTunes pero debido a que se encontraba en el sol al rasparle (aunque lo hizo con cuidado) se borró un número de la clave de la tarjeta con la cual al introducirlo en su Kpod podría gozar de su saldo disponible. KRoa el desesperado hablo al servicio a clientes y le dijeron lo siguiente: “Para poder encontrar el número faltante primero obtendrá la suma de los valores ASCII de los caracteres a la izquierda del número faltante y después la suma de los valores ASCII de la derecha de dicho número faltante. Posteriormente los compara y se quedará con el número más grande (Si son iguales te quedarás con cualquiera de los dos), ya con el resultado sumará entre si todas las cifras obteniendo un número, repetirá ese procedimiento hasta que solo quede un numero de una sola cifra ese es el numero faltante (Es decir si la suma dio 391, entonces 3 + 9 + 1 = 13 ; 1 + 3 = 4, en este caso el 4 es el numero buscado)” KRoa se quedó pasmado con la explicación así que corrió solicitar a tu ayuda PROBLEMA Encuentra el número faltante en la clave ENTRADA En la primera línea un número N indicando cuantas claves vas a leer En las siguientes N líneas una cadena de K longitud por línea que representa a la clave de la tarjeta formada por caracteres del abecedario tanto en mayúsculas y minúsculas además de números (No existirá ningún otro carácter a excepción del carácter ‘?’), el carácter faltante que busca Karel estará representado dentro de la cadena por el carácter ‘?’. SALIDA N líneas con un solo número que representa al carácter faltante EJEMPLO ENTRADA 3 aZ34?zz wdcx?zxw01 1234?4321 LIMITES SALIDA 2 8 4 1 <= N <= 10000, 3 <= K <= 1000 NOTA IMPORTANTE Para obtener el valor ASCII de un carácter en específico puedes hacer un casting a entero al carácter en cuestión, es decir: char c=’a’; int a = (int)c; Con el código anterior obtendrás en la variable a el valor ASCII del carácter ‘a’ que esta almacenado en la variable c 7 – Maximus (maximus.cpp) por: Gilberto Vargas TIEMPO LIMITE 1 SEGUNDO Karel se encontraba meditando y logro entrar en trance. Ha hecho un viaje astral y se encuentra con los monjes tibetanos, quienes le han puesto un desafío a Karel. Ellos le darán 3 cifras diferentes y él deberá decir cuál es el número más grande que puede formar con ellos, el máximus. Los monjes quieren probarlo al máximo y le harán muchas preguntas. Ayúdalo a responder correctamente. ENTRADA En la primera línea un número P, indicando cuantas preguntas harán los monjes. En las siguientes P líneas 3 números, estos son los dígitos que Karel utilizara para calcular el máximus. SALIDA P líneas con un numero de 3 cifras cada uno. EJEMPLO ENTRADA 4 324 023 842 029 LIMITES • 1<=P<=100 SALIDA 432 320 842 920 8 – Chocolates (chocolates.cpp) por: Gilberto Vargas TIEMPO LIMITE 1 SEGUNDO Karel obtuvo una estadística de cuántos chocolates comió en promedio por día durante un periodo de tiempo. Digamos que comió en promedio P chocolates diarios en K días. Karel quiere saber de cuántas formas pudo haber consumido los chocolates en los K días, es decir, de cuántas formas pudo haber distribuido los chocolates consumidos en el día 1, día 2, día 3 ... día K de modo que el promedio de chocolates consumidos por día, siga siendo el mismo. Karel suele comer los chocolates de un bocado, así que nunca puedes distribuir un chocolate en más de un día Ayúdalo a calcular la cantidad de combinaciones posibles. ENTRADA Una única línea con 2 números separados, P y K. El primero un número real con 3 decimales, representado la cantidad promedio de chocolates que consumió Karel y un número con los días que consideró karel para realizar su estadística. SALIDA Una sola línea con la cantidad de combinaciones posibles, pero como este número puede crecer bastante, será módulo 100000007. EJEMPLO ENTRADA SALIDA 1.667 3 21 LIMITES Para el 40% de los casos 1<(K*P),P<=10 Para el 100% de los casos 10<(K*P),P,<=1,000,000 9 – Papelitos (papel.cpp) por: Gilberto Vargas TIEMPO LIMITE 1 SEGUNDO Karel y Robocharro estaban muy aburridos y han inventado un nuevo juego. Primero Karel toma una hoja de su cuaderno y la corta en N pedazos, después Robocharro escribe un número entre el 1 y 10,000 en cada uno de los papelitos que cortó Karel. Después los meten a una caja de zapatos y Karel elige un numero M, después Robocharro saca M papelitos de la caja aleatoriamente, y sin que Karel los vea, deberá decir un numero Q. Robocharro suma los valores de los papelitos y obtiene un numero S. Si S es múltiplo de Q, Karel ganará. PROBLEMA Dada la cantidad de papelitos que se agregaron a la caja, los valores que tenían agregados cada uno, la cantidad M que representa cuantos papelitos se van sacar por ronda y el numero Q que Karel dijo, deberás calcular la probabilidad que tiene Karel de ganar. ENTRADA En la primer línea los números N, M y Q separados por un espacio En la segunda línea N números con los valores de los papelitos que se ingresaron a la caja. SALIDA La probabilidad que tiene Karel de ganar en forma de fracción simplificada con la forma Numerador/Denominador. EJEMPLO ENTRADA SALIDA 423 1234 1/3 LIMITES 1 < N,M,Q <=100 CUARTO EXAMEN OMIJAL 2013 EXAMEN: MODO DEL EXAMEN: DURACION DEL EXAMEN: CATEGORIAS QUE REALIZARON EL EXAMEN: LENGUAJE DE PROGRAMACION UTILIZADO: NOMBRE DEL PROBLEMA TEMBLOR KARELTIJO COSECHANDO KOKEPON BOTELLAS GENETICA 3 RANGOS SALTO DE RANA SALTO DE RANA 2 CATEGORIA PRIMARIA PRIMARIA PRIMARIA SECUNDARIA SECUNDARIA OMI SECUNDARIA OMI OMI UNIVER UNIVER UNIVER KAREL/C PRESENCIAL 3 HORAS PRIMARIA SECUNDARIA OMI (PREPARATORIA) PREUNIVERSITARIOS UNIVERSITARIOS KAREL / C CONTENIDO DEL EXAMEN LENGUAJE REALIZADO POR: UTILZADO KAREL JAVIER PADILLA KAREL JAVIER PADILLA KAREL JOSE LUIS ROA GARCIA DE LA PAZ C / C++ JOSE LUIS ROA GARCIA DE LA PAZ C / C++ GILBERTO VARGAS C / C++ JOSE LUIS ROA GARCIA DE LA PAZ C / C++ GILBERTO VARGAS C / C++ C / C++ GILBERTO VARGAS GILBERTO VARGAS 1 - Temblor (temblor.txt) por: Javier Padilla ::Primaria:: La ciudad de Karelajara misteriosamente ha sido víctima de diferentes temblores, por lo que no ha tenido más remedio que llamar a KarMan para que se encargue de cuidar a los ciudadanos y evitar que algún edificio caiga sobre ellos. KarMan siempre carga con él 2 zumbadores como las armas letales para defender a la ciudad de los desastres naturales y de los malvados villanos que la atemorizan. Problema: Tu misión es ayudar a KarMan a colocar una marca de 2 zumbadores en la primer posición segura donde el edificio no puede caer. Condiciones: Los edificios tienen siempre una altura entre 1 y 99 zumbadores de alto, y están formados por una línea vertical siempre consecutiva de 1 zumbador por posición, su base siempre está junto al suelo (pegado a la pared de la parte inferior). KarMan comienza en la base del edificio mirando hacia el norte con 2 zumbadores en su mochila. Ten cuidado en tu misión porque El malvado villano Roanigma se acerca… No importa la posición, ni la orientación final de KarMan. Al terminar el programa el edificio deber estar exactamente igual que al inicio del programa. El edificio siempre caerá hacia el lado derecho, su base no se moverá del lugar donde inicia, se desconoce si está pegado a una pared. No existen más paredes en el interior del mundo, solo las que delimitan el mundo. Ejemplo: ENTRADA SALIDA 2 - Kareltijo (ktijo.txt) por: Javier Padilla ::Primaria:: ¡¡Todo se ha descubierto!! El malvado villano JokerGil es que está detrás de los últimos ataques a la ciudad, JokerGil ha capturado a KarMan y encerrado en una cárcel en forma de Caracol, le ha tapado los ojos y escondido en el interior de la prisión. Afortunadamente has alcanzado a tirar tus dos zumbadores a la entrada y por medio de ellos puedes encontrar una salida. Problema: Ayuda a KarMan a salir de esta prisión y encarcelar a JokerGil por sus malvados crímenes. Condiciones: KarMan comienza en lo más profundo de la prisión en cualquier dirección pero siempre con solo un lado desbloqueado para que pueda escapar. La prisión siempre tiene un grosor de una calle. No tiene zumbadores en su mochila, y en el mundo solo se encuentran los zumbadores que KarMan tiro a la entrada. KarMan DEBERA TERMINAR junto a los dos zumbadores orientado al norte. Ejemplo: ENTRADA SALIDA 3 - Cosechando (cosecha.txt) por: José Luis Roa García ::Primaria:: Karelina trabaja en el rancho de su tío Karel cosechando zumbadores frescos, exactamente en marzo es fecha de cosechas así que se dirige a la hortaliza. PROBLEMA Ayuda a Karelina a recoger únicamente los zumbadores frescos de su hortaliza CONSIDERACIONES La hortaliza es de forma cuadrada (cuyo tamaño mínimo es de 3X3). Karelina adora comer zumbadores con crema Karelina empieza siempre en la esquina inferior izquierda, no se sabe su orientación inicial Karelina solo debe recoger los zumbadores frescos que se representan con montones de 2 zumbadores, puede que existan montones de 1 (Verdes) o 3 (Podridos) zumbadores esos montones que no están frescos los debe dejar en su sitio ya que el tío Karel después sabrá que hacer con ellos No importa la orientación ni la posición final de Karelina Karelina al inicio no tiene zumbadores en su canasta Al final Karelina se queda con los zumbadores en su canasta EJEMPLOS ENTRADA SALIDA 4 – Kokepon (kokepon.cpp) por: José Luis Roa García de la Paz :: Secundaria :: Tiempo de ejecución 1 seg. DESCRIPCIÓN Kokepon es una variante del clásico juego de piedra, papel o tijeras que a Karel le encanta jugar con sus amigos cuando se tiene que decidir algo, en esta ocasión lo tienen que jugar entre Karel y Robocharro para decidir quien escoge la siguiente película en el cine. Kokepon tiene como diferencia al juego tradicional el identificar a los elementos (Piedra, , Tijeras, Papel) con números (1,2,3) respectivamente, respetando las mismas reglas que en el juego tradicional. PROBLEMA Realiza un programa que le ayude a Karel a jugar Kokepon con Robocharro ENTRADA Un numero N (1 <= N <= 100,000 ) que indica la cantidad de juegos que tendrán Karel y Robocharro En las siguientes N+1 líneas dos pares de números K y C (1<= K ,C <= 3), donde K es el elemento que selecciono Karel y C el que selecciono Robocharro SALIDA Una línea por juego que indique el nombre del ganador ya sea “KAREL” o “ROBOCHARRO”, en caso de empate escribir “EMPATE” NOTA: Las reglas de quien vence a quien es la siguiente: 2 3 1 1 EJEMPLO ENTRADA SALIDA 4 13 21 33 12 ROBOCHARRO ROBOCHARRO EMPATE KAREL 5 –Botellas (botellas.cpp) por: Gilberto Vargas :: Secundaria, OMI :: Tiempo de ejecución 1 seg. DESCRIPCIÓN Karel organizo una fiesta con jugos, piñatas y pasteles. Al terminar, le toco recoger la casa junto con Robocharro. Como ya estaban muy aburridos, se les ocurrió un nuevo juego. En una mesa se encontraban N botellas de jugo. En cada turno, cada jugador debe tomar al menos una botella y a lo máximo K botellas. Esas botellas serán puestas en el bote de la basura. El jugador que ponga en la basura la última botella será el perdedor y deberá comprarle una coca y un gansito al ganador. PROBLEMA Dadas la cantidad N de botellas en la mesa, y la cantidad de botellas que puede tomar cada jugador, determina quién ganará la partida tomando en cuenta que siempre iniciara Karel. ENTRADA La entrada consiste de múltiples casos de prueba. Por cada caso de prueba, será una sola línea con 2 números separados por un espacio, K, y N. La entrada finalizara con un 0. SALIDA Por cada caso de prueba una línea, diciendo quien gana, “KAREL” o “ROBOCHARRO”, sin comillas. EJEMPLO Entrada Salida 3 15 4 8 2 10 0 ROBOCHARRO KAREL ROBOCHARRO EVALUACION Nunca se harán más de 5 preguntas en el mismo caso. En el 30% de los casos 1<=K<=N<=100 En el 50% de los casos 1<=K<=N<=1000 En el 100% de los casos 1<=K<=N<=1,000,000,000 6 – Genetica 3 (genetik.cpp) por: José Luis Roa García de la Paz :: Secundaria, OMI :: Tiempo de ejecución 1 seg. Las investigaciones del Instituto de Genética de Kareltostitlan (IGK) han dado como resultado la manera exacta de cómo saber si un zumbador es pariente directo de otro zumbador, la explicación es muy sencilla. Primero recordemos que la cadena genética de un zumbador está representada por una secuencia finita de N números enteros positivos, teniendo esa lista de números se debe ir comparando por pares adyacentes si el número de la izquierda es mayor al de la derecha en caso afirmativo se sumara uno a un acumulador que se esté manejando, en caso contrario no se le suma nada al final se obtendrá un resultado R. Al aplicar el procedimiento anterior se obtendrán los resultados de los zumbadores que se desean saber si son parientes, lo cual sucede si el resultado de ambos zumbadores es el mismo PROBLEMA Realiza un programa que nos diga si dos zumbadores son parientes o no ENTRADA En la primer línea un número N (2 <= N <= 1000) que nos indica la longitud de las cadenas ADN de los zumbadores En la segunda línea la cadena ADN del primer zumbador que está compuesta por una secuencia de N números enteros positivos menores o iguales a 1,000,000 separados entre sí por un único espacio en blanco En la tercera línea la cadena ADN del primer zumbador que está compuesta por una secuencia de N números enteros positivos menores o iguales a 1,000,000 separados entre sí por un único espacio en blanco SALIDA Una única línea que mostrara el carácter ‘S’ si son parientes o ‘N’ si no lo son después separado por un espacio el resultado acumulado del zumbador 1 y por otro espacio el resultado acumulado del zumbador 2 EJEMPLO ENTRADA SALIDA 10 1 3 5 9 7 10 3 2 10 7 7532136766 N45 ENTRADA SALIDA 3 10 45 98 123 S00 7– Rangos (rangos.cpp) por: Gilberto Vargas :: OMI, Universidad :: Tiempo de ejecución 1 seg. La tarea es muy sencilla de hacer pero requerimos de tu destreza para hacerla de una manera óptima. Inicialmente, contamos con una lista de números L y 2 tipos de instrucciones: La instrucción X recibe 2 números un índice I y un valor K. La tarea de esta instrucción es cambiar el número de la lista L con el índice I por el número K. La instrucción R recibirá 2 parámetros A y B. Esta instrucción deberá regresar el producto de todos los números de la lista L con los índices entre A y B, incluyendo ambos números. Estos números pueden llegar a ser muy grandes, por lo que tu respuesta deberá ser módulo 1,000,000,009. Durante la ejecución del programa se te harán una cantidad P de preguntas, donde tendrás que ejecutar cualquiera de las 2 instrucciones descritas. ENTRADA En la primer línea un número N (1<=N<=100,000) con la cantidad de números que contiene la lista (los valores de la lista van desde 1 hasta . En la segunda línea, N números, conformando la lista L. En la tercera línea un numero P (1<=P<=100,000), indicando la cantidad de preguntas que tendrás que ejecutar. En las siguientes P líneas, obtendrás las preguntas con 3 valores distintos, el primero será una letra, que será “X” o “R” indicando que tipo de operación. Los siguientes 2 números serán I (1<=I<=N) y K en caso de que la letra sea “X” o A y B (donde 1<=A<=B<=N) en caso de que la letra sea “R” SALIDA Por cada pregunta “R” deberás imprimir el resultado de dicha operación en una sola línea. EJEMPLO NOTA: En todos los casos se hará al menos una pregunta “R”, Los arreglos van de la posición 1 a la N ENTRADA SALIDA 10 7 6 1 2 3 4 5 10 9 2 4 R15 X12 X59 R 1 10 252 777600 8 – Salto de rana (salto.cpp) por: Gilberto Vargas :: Universidad :: Tiempo de ejecución 1 seg. PROBLEMA Una ranita se encontraba en un estanque muy extraño, por lo que se sentía muy incómoda. Decidió irse de ese estanque lo más pronto posible, por lo que te ha pedido que le ayudes a saber cuál es la cantidad mínima de saltos para poder llegar a la salida del estanque. El estanque está divido en cuadrados de 1x1 cm y tiene una forma rectangular, para ser más preciso es de N x M cuadritos. Sobre cada cuadrito, se encuentra un hoja-trampolín. Cada hojatrampolín tiene un número pintado, ese número será la fuerza de la hoja-trampolín. Cada vez que la ranita quiera saltar de una hoja-trampolín a otra solo podrá hacerlo en línea recta, pero saldrá disparado tantas casillas como la hoja-trampolín diga. Por ejemplo, si la ranita esta parada sobre una hoja-trampolín con un numero 3, podrá saltar 3 casillas al norte, al sur, al este o al oeste, pero debes tener cuidado de que la ranita no caiga fuera del estanque. El comienzo del estanque será la hoja-trampolín en la coordenada 1,1 mientras que la salida será la coordenada será la casilla N,M. ¿Podrás ayudarla? ENTRADA En la primer línea, N y M (1<N,M<=1000) separados por un espacio. En las siguientes M líneas, N números, con el valor pintado sobre el trampolín. SALIDA Un solo número, la cantidad mínima de saltos para llegar del inicio (0,0) a la salida (N,M). NOTA: Ningún trampolín tendrá una fuerza mayor a 1000. Siempre será posible salir del estanque. EJEMPLO ENTRADA SALIDA 56 23321 45332 34532 21323 11111 22111 4 9 – Salto de rana 2 (salto2.cpp) por: Gilberto Vargas :: Universidad :: Tiempo de ejecución 1 seg. PROBLEMA Nota: Necesitas leer el problema anterior (Salto de rana) para entender completamente este problema Una vez que la ranita salió del estanque decidió que no fue tan mala su estancia, así que le gustaría visitarlo una vez a la semana. Como no quiere repetir el mismo camino todas las semanas quiere saber cuántas semanas habrán pasado para que vuelva a repetir un camino suponiendo que siempre tomara uno diferente. En esta ocasión, la ranita solo saltara al sur y al este para no perder tiempo. Ayúdala a saber la cantidad de caminos validos que existen entre el inicio y la salida. ENTRADA En la primer línea N y M (1<N,M<=1000) separados por un espacio. En las siguientes M líneas, N números, con el valor pintado sobre el trampolín. SALIDA Un solo número, la cantidad de caminos validos entre el inicio (0,0) y la salida (N,M). NOTA: Ningún trampolín tendrá una fuerza mayor a 1000. Siempre será posible salir del estanque. EJEMPLO ENTRADA 5 2 4 3 2 1 2 6 3 5 4 1 1 2 3 3 5 3 1 1 2 3 3 2 1 1 SALIDA 1 2 2 3 1 1 2