![Page 1: Solucionario Maratón de Programación UFPS 2016programacioncompetitivaufps.github.io/documents/... · 2018. 6. 15. · Programaci on Competitiva UFPS Universidad Francisco de Paula](https://reader035.vdocuments.co/reader035/viewer/2022062507/5fd6661929980f04d41cf64c/html5/thumbnails/1.jpg)
Solucionario Maraton de Programacion UFPS 2016
Programacion CompetitivaUFPS
Universidad Francisco de PaulaSantander
Mayo 21 de 2016
![Page 2: Solucionario Maratón de Programación UFPS 2016programacioncompetitivaufps.github.io/documents/... · 2018. 6. 15. · Programaci on Competitiva UFPS Universidad Francisco de Paula](https://reader035.vdocuments.co/reader035/viewer/2022062507/5fd6661929980f04d41cf64c/html5/thumbnails/2.jpg)
1. Elephants
”M elefantes se balanceaban sobre la tela de una arana”.
Teniendo un conjunto de M elefantes, cada uno con un peso wi , yconociendo el maximo peso que la telarana soporta, ¿cual es el mayornumero de elefantes que se pueden subir a la telarana sin que serompa?
2 of 80
![Page 3: Solucionario Maratón de Programación UFPS 2016programacioncompetitivaufps.github.io/documents/... · 2018. 6. 15. · Programaci on Competitiva UFPS Universidad Francisco de Paula](https://reader035.vdocuments.co/reader035/viewer/2022062507/5fd6661929980f04d41cf64c/html5/thumbnails/3.jpg)
1. Elephants
Es un problema de optimizacion: Anadir el mayor numero posible deelefantes sin exceder el peso de la tela. Si los elefantes tuvieran unvalor, serıa el clasico problema de la mochila.
3 of 80
![Page 4: Solucionario Maratón de Programación UFPS 2016programacioncompetitivaufps.github.io/documents/... · 2018. 6. 15. · Programaci on Competitiva UFPS Universidad Francisco de Paula](https://reader035.vdocuments.co/reader035/viewer/2022062507/5fd6661929980f04d41cf64c/html5/thumbnails/4.jpg)
1. Elephants
Es un problema de optimizacion: Anadir el mayor numero posible deelefantes sin exceder el peso de la tela. Si los elefantes tuvieran unvalor, serıa el clasico problema de la mochila.
Sin embargo, ningun elefante vale mas que otro. Por lo tanto, lasolucion es simple: Subir a la tela los elefantes que pesen menos.Para esto, puedo simplemente ordenar los valores, y empezar a sumarlos elefantes de menor a menor mientras no superen el limite.
En java puede usarse Collections.sort() o Arrays.sort(). En c/c++sort().
Ejemplo: 5 elefantes 9, 1, 8, 7, 7. Peso maximo: 22
4 of 80
![Page 5: Solucionario Maratón de Programación UFPS 2016programacioncompetitivaufps.github.io/documents/... · 2018. 6. 15. · Programaci on Competitiva UFPS Universidad Francisco de Paula](https://reader035.vdocuments.co/reader035/viewer/2022062507/5fd6661929980f04d41cf64c/html5/thumbnails/5.jpg)
2. Royale with Cheese
Cada caracter que no ha aparecido previamente en la secuencia tomaun valor ascendente numerico empezando en 1. Cuando el caracter haaparecido previamente, toma ese mismo valor. Numerosintercambiables: 2-5, 6-9.
Ejemplo: ”abbchocx” = 15534239
5 of 80
![Page 6: Solucionario Maratón de Programación UFPS 2016programacioncompetitivaufps.github.io/documents/... · 2018. 6. 15. · Programaci on Competitiva UFPS Universidad Francisco de Paula](https://reader035.vdocuments.co/reader035/viewer/2022062507/5fd6661929980f04d41cf64c/html5/thumbnails/6.jpg)
2. Royale with Cheese
Cada caracter que no ha aparecido previamente en la secuencia tomaun valor ascendente numerico empezando en 1. Cuando el caracter haaparecido previamente, toma ese mismo valor. Numerosintercambiables: 2-5, 6-9.
Ejemplo: ”abbchocx” = 15534239
La solucion es simple: Crear un mapa (TreeMap o HashMap) de<Caracter, Entero> donde guarde por cada letra, el valor que toma.IMPORTANTE: Evitar el doble recorrido.
6 of 80
![Page 7: Solucionario Maratón de Programación UFPS 2016programacioncompetitivaufps.github.io/documents/... · 2018. 6. 15. · Programaci on Competitiva UFPS Universidad Francisco de Paula](https://reader035.vdocuments.co/reader035/viewer/2022062507/5fd6661929980f04d41cf64c/html5/thumbnails/7.jpg)
3. Presidential Election
Existen A candidatos y B estados. En cada estado se realizanelecciones, y nos indican el porcentaje de votos que cada candidatoobtuvo en cada ciudad, y la cantidad de votantes en esta ciudad.Debo decir quien gana las elecciones o quienes van a segunda vuelta.
La solucion es tan simple como calcular el numero de votos de cadacandidato en cada estado (teniendo su porcentaje y el total devotantes es solo una regla de 3), y sumar la cantidad de votos queobtuvo en todos los estados.
7 of 80
![Page 8: Solucionario Maratón de Programación UFPS 2016programacioncompetitivaufps.github.io/documents/... · 2018. 6. 15. · Programaci on Competitiva UFPS Universidad Francisco de Paula](https://reader035.vdocuments.co/reader035/viewer/2022062507/5fd6661929980f04d41cf64c/html5/thumbnails/8.jpg)
3. Presidential Election
Ejemplo:
IMPORTANTE: Math.round().
8 of 80
![Page 9: Solucionario Maratón de Programación UFPS 2016programacioncompetitivaufps.github.io/documents/... · 2018. 6. 15. · Programaci on Competitiva UFPS Universidad Francisco de Paula](https://reader035.vdocuments.co/reader035/viewer/2022062507/5fd6661929980f04d41cf64c/html5/thumbnails/9.jpg)
4. Sudoku
En este ejercicio se pide verificar que un sudoku este solucionadocorrectamente. El tamano del sudoku puede ser 4x4, 9x9, 16x16 o25x25. Como se puede ver, los sudokus son diminutamente pequenos,por lo cual no nos preocupamos por la eficiencia.
Se debe verificar linea a linea, que no contenga numeros repetidos. Lomismo columna a columna. Finalmente, cada uno de los subcuadros.Si todas las condiciones se cumplen, el sudoku es correcto.
9 of 80
![Page 10: Solucionario Maratón de Programación UFPS 2016programacioncompetitivaufps.github.io/documents/... · 2018. 6. 15. · Programaci on Competitiva UFPS Universidad Francisco de Paula](https://reader035.vdocuments.co/reader035/viewer/2022062507/5fd6661929980f04d41cf64c/html5/thumbnails/10.jpg)
4. Sudoku1 s t a t i c boo l ean v e r i f i c a r H o r i z o n t a l V e r t i c a l ( ) {2 TreeSet<I n t e g e r> v1 = new TreeSet<I n t e g e r >() ;3 TreeSet<I n t e g e r> v2 = new TreeSet<I n t e g e r >() ;4 i n t l e n g t h ;5 f o r ( i n t i = 0 ; i < n ; i++) {6 v1 . c l e a r ( ) ; v2 . c l e a r ( ) ; l e n g t h = 0 ;7 f o r ( i n t j = 0 ; j < n ; j++) {8 v1 . add ( sudoku [ i ] [ j ] ) ;9 v2 . add ( sudoku [ j ] [ i ] ) ;
10 }11 i f ( v1 . s i z e ( ) != v2 . s i z e ( ) | | v1 . s i z e ( ) != n ) {12 r e t u r n f a l s e ;13 }14 }15 r e t u r n t r u e ;16 }
10 of 80
![Page 11: Solucionario Maratón de Programación UFPS 2016programacioncompetitivaufps.github.io/documents/... · 2018. 6. 15. · Programaci on Competitiva UFPS Universidad Francisco de Paula](https://reader035.vdocuments.co/reader035/viewer/2022062507/5fd6661929980f04d41cf64c/html5/thumbnails/11.jpg)
4. Sudoku1 s t a t i c boo l ean v e r i f i c a r S u bC u a d r i c u l a ( ) {2 i n t r a i z = ( i n t )Math . s q r t ( n ) ;3 TreeSet<I n t e g e r> v1 = new TreeSet<I n t e g e r >() ;4 f o r ( i n t i = 0 ; i < n ; i += r a i z ) {5 f o r ( i n t j = 0 ; j < n ; j += r a i z ) {6 v1 . c l e a r ( ) ;7 l e n g t h = 0 ;8 f o r ( k = i ; k < i + r a i z ; k++) {9 f o r ( l = j ; l < j + r a i z ; l++){
10 v1 . i n s e r t ( sudoku [ k ] [ l ] ) ;11 }12 }13 i f ( v1 . s i z e ( ) != n ) r e t u r n f a l s e ;14 }15 }16 r e t u r n t r u e ;17 }
11 of 80
![Page 12: Solucionario Maratón de Programación UFPS 2016programacioncompetitivaufps.github.io/documents/... · 2018. 6. 15. · Programaci on Competitiva UFPS Universidad Francisco de Paula](https://reader035.vdocuments.co/reader035/viewer/2022062507/5fd6661929980f04d41cf64c/html5/thumbnails/12.jpg)
4. Sudoku
12 of 80
![Page 13: Solucionario Maratón de Programación UFPS 2016programacioncompetitivaufps.github.io/documents/... · 2018. 6. 15. · Programaci on Competitiva UFPS Universidad Francisco de Paula](https://reader035.vdocuments.co/reader035/viewer/2022062507/5fd6661929980f04d41cf64c/html5/thumbnails/13.jpg)
5. Alliances in Hogwarts
El escuadron inquisitorial tiene una mision... deben determinar si losdemas estudiantes de Hogwarts apoyan o no al ministerio. Para estodeben observar el comportamiento de los estudiantes y determinar lasrelaciones que existen entre ellos. Las relaciones entre los estudiantesse determinan con base a las siguientes reglas:
13 of 80
![Page 14: Solucionario Maratón de Programación UFPS 2016programacioncompetitivaufps.github.io/documents/... · 2018. 6. 15. · Programaci on Competitiva UFPS Universidad Francisco de Paula](https://reader035.vdocuments.co/reader035/viewer/2022062507/5fd6661929980f04d41cf64c/html5/thumbnails/14.jpg)
5. Alliances in Hogwarts
� Dos estudiantes son aliados si sus lealtades son las mismas.
� Dos estudiantes son enemigos si sus lealtades son diferentes.
� Un estudiante es aliado de si mismo.
� Nadie es enemigo de si mismo.
� Las relaciones de amistad y enemistad son mutuas.
� ”Los amigos de mis amigos son mis amigos tambien”.
� ”El enemigo de mi enemigo es mi amigo”.
� ”El enemigo de mi amigo es mi enemigo tambien”.
NOTA: Al comienzo de la investigacion se asume que no existeningun tipo de relacion entre los estudiantes.
14 of 80
![Page 15: Solucionario Maratón de Programación UFPS 2016programacioncompetitivaufps.github.io/documents/... · 2018. 6. 15. · Programaci on Competitiva UFPS Universidad Francisco de Paula](https://reader035.vdocuments.co/reader035/viewer/2022062507/5fd6661929980f04d41cf64c/html5/thumbnails/15.jpg)
5. Alliances in Hogwarts
La entrada de este ejercicio esta compuesta por un conjunto deoperaciones (c , x , y) donde c es el codigo de la operacion y x , yindican el id de los estudiantes. Existen 4 tipos de operaciones:
� 1 - El escuadron marca la relacion de x e y como amistad.
� 2 - El escuadron marca la relacion de x e y como enemistad.
� 3 - Umbridge pregunta si los estudiantes x e y son amigos.
� 4 - Umbridge pregunta si los estudiantes x e y son enemigos.
15 of 80
![Page 16: Solucionario Maratón de Programación UFPS 2016programacioncompetitivaufps.github.io/documents/... · 2018. 6. 15. · Programaci on Competitiva UFPS Universidad Francisco de Paula](https://reader035.vdocuments.co/reader035/viewer/2022062507/5fd6661929980f04d41cf64c/html5/thumbnails/16.jpg)
5. Alliances in Hogwarts
¿Como solucionarlo?
16 of 80
![Page 17: Solucionario Maratón de Programación UFPS 2016programacioncompetitivaufps.github.io/documents/... · 2018. 6. 15. · Programaci on Competitiva UFPS Universidad Francisco de Paula](https://reader035.vdocuments.co/reader035/viewer/2022062507/5fd6661929980f04d41cf64c/html5/thumbnails/17.jpg)
5. Alliances in Hogwarts
¿Como solucionarlo? Si...
17 of 80
![Page 18: Solucionario Maratón de Programación UFPS 2016programacioncompetitivaufps.github.io/documents/... · 2018. 6. 15. · Programaci on Competitiva UFPS Universidad Francisco de Paula](https://reader035.vdocuments.co/reader035/viewer/2022062507/5fd6661929980f04d41cf64c/html5/thumbnails/18.jpg)
5. Alliances in Hogwarts
¿Como solucionarlo? Si... Adivinaron ¡Disjoint Set! :3
18 of 80
![Page 19: Solucionario Maratón de Programación UFPS 2016programacioncompetitivaufps.github.io/documents/... · 2018. 6. 15. · Programaci on Competitiva UFPS Universidad Francisco de Paula](https://reader035.vdocuments.co/reader035/viewer/2022062507/5fd6661929980f04d41cf64c/html5/thumbnails/19.jpg)
5. Alliances in Hogwarts
¿Como solucionarlo? Si... Adivinaron ¡Disjoint Set! :3
Pero... existe un problema y este es las relaciones de enemistad.Podemos solucionarlo de dos maneras:
� A. Que cada estudiante maneje una coleccion (set, array, vector...)de enemigos.
� B. Crear alter/egos para cada esudiante, de manera que se puedamanipular todo a traves del Disjoint Set.
¿Que opcion elegı yo?
19 of 80
![Page 20: Solucionario Maratón de Programación UFPS 2016programacioncompetitivaufps.github.io/documents/... · 2018. 6. 15. · Programaci on Competitiva UFPS Universidad Francisco de Paula](https://reader035.vdocuments.co/reader035/viewer/2022062507/5fd6661929980f04d41cf64c/html5/thumbnails/20.jpg)
5. Alliances in Hogwarts
¿Como solucionarlo? Si... Adivinaron ¡Disjoint Set! :3
Pero... existe un problema y este es las relaciones de enemistad.Podemos solucionarlo de dos maneras:
� A. Que cada estudiante maneje una coleccion (set, array, vector...)de enemigos.
� B. Crear alter/egos para cada esudiante, de manera que se puedamanipular todo a traves del Disjoint Set.
¿Que opcion elegı yo? Correcto, la B.
20 of 80
![Page 21: Solucionario Maratón de Programación UFPS 2016programacioncompetitivaufps.github.io/documents/... · 2018. 6. 15. · Programaci on Competitiva UFPS Universidad Francisco de Paula](https://reader035.vdocuments.co/reader035/viewer/2022062507/5fd6661929980f04d41cf64c/html5/thumbnails/21.jpg)
5. Alliances in Hogwarts
21 of 80
![Page 22: Solucionario Maratón de Programación UFPS 2016programacioncompetitivaufps.github.io/documents/... · 2018. 6. 15. · Programaci on Competitiva UFPS Universidad Francisco de Paula](https://reader035.vdocuments.co/reader035/viewer/2022062507/5fd6661929980f04d41cf64c/html5/thumbnails/22.jpg)
5. Alliances in Hogwarts
¿Amistad? Sencillo...
22 of 80
![Page 23: Solucionario Maratón de Programación UFPS 2016programacioncompetitivaufps.github.io/documents/... · 2018. 6. 15. · Programaci on Competitiva UFPS Universidad Francisco de Paula](https://reader035.vdocuments.co/reader035/viewer/2022062507/5fd6661929980f04d41cf64c/html5/thumbnails/23.jpg)
5. Alliances in Hogwarts
¿Enemistad? Interesante...
23 of 80
![Page 24: Solucionario Maratón de Programación UFPS 2016programacioncompetitivaufps.github.io/documents/... · 2018. 6. 15. · Programaci on Competitiva UFPS Universidad Francisco de Paula](https://reader035.vdocuments.co/reader035/viewer/2022062507/5fd6661929980f04d41cf64c/html5/thumbnails/24.jpg)
5. Alliances in Hogwarts
”Los amigos de mis amigos son mis amigos tambien”
24 of 80
![Page 25: Solucionario Maratón de Programación UFPS 2016programacioncompetitivaufps.github.io/documents/... · 2018. 6. 15. · Programaci on Competitiva UFPS Universidad Francisco de Paula](https://reader035.vdocuments.co/reader035/viewer/2022062507/5fd6661929980f04d41cf64c/html5/thumbnails/25.jpg)
5. Alliances in Hogwarts
”El enemigo de mi enemigo es mi amigo”
25 of 80
![Page 26: Solucionario Maratón de Programación UFPS 2016programacioncompetitivaufps.github.io/documents/... · 2018. 6. 15. · Programaci on Competitiva UFPS Universidad Francisco de Paula](https://reader035.vdocuments.co/reader035/viewer/2022062507/5fd6661929980f04d41cf64c/html5/thumbnails/26.jpg)
5. Alliances in Hogwarts
”El enemigo de mi amigo es mi enemigo tambien”
26 of 80
![Page 27: Solucionario Maratón de Programación UFPS 2016programacioncompetitivaufps.github.io/documents/... · 2018. 6. 15. · Programaci on Competitiva UFPS Universidad Francisco de Paula](https://reader035.vdocuments.co/reader035/viewer/2022062507/5fd6661929980f04d41cf64c/html5/thumbnails/27.jpg)
6. Vogons
Los vogones destruiran una extension de tierra con oro distribuido enuna cuadricula, donde cada casilla tiene cierta cantidad de oro. Elproceso que realizan es el siguiente:
� Selecciona un cuadrado no destruido.
� Extrae el oro que contiene.
� Destruye el cuadrado seleccionado.
� Destruye las casillas superior e inferior.
� Destruye todos los cuadrados de las columnas a la derecha eizquierda del cuadrado seleccionado.
27 of 80
![Page 28: Solucionario Maratón de Programación UFPS 2016programacioncompetitivaufps.github.io/documents/... · 2018. 6. 15. · Programaci on Competitiva UFPS Universidad Francisco de Paula](https://reader035.vdocuments.co/reader035/viewer/2022062507/5fd6661929980f04d41cf64c/html5/thumbnails/28.jpg)
6. Vogons
28 of 80
![Page 29: Solucionario Maratón de Programación UFPS 2016programacioncompetitivaufps.github.io/documents/... · 2018. 6. 15. · Programaci on Competitiva UFPS Universidad Francisco de Paula](https://reader035.vdocuments.co/reader035/viewer/2022062507/5fd6661929980f04d41cf64c/html5/thumbnails/29.jpg)
6. Vogons
29 of 80
![Page 30: Solucionario Maratón de Programación UFPS 2016programacioncompetitivaufps.github.io/documents/... · 2018. 6. 15. · Programaci on Competitiva UFPS Universidad Francisco de Paula](https://reader035.vdocuments.co/reader035/viewer/2022062507/5fd6661929980f04d41cf64c/html5/thumbnails/30.jpg)
6. Vogons
Al tomar un valor, eliminamos toda la columna a su izquierda, y todala columna a su derecha. Por lo tanto, nos interesaremos de momentoSOLO en resolver el problema para una columna, y no para toda lacuadricula.
Al tomar un valor, eliminamos su casilla superior e inferior. Ası pues,para cada columna debemos buscar cual es el maximo que se puedeobtener.
30 of 80
![Page 31: Solucionario Maratón de Programación UFPS 2016programacioncompetitivaufps.github.io/documents/... · 2018. 6. 15. · Programaci on Competitiva UFPS Universidad Francisco de Paula](https://reader035.vdocuments.co/reader035/viewer/2022062507/5fd6661929980f04d41cf64c/html5/thumbnails/31.jpg)
6. Vogons
31 of 80
![Page 32: Solucionario Maratón de Programación UFPS 2016programacioncompetitivaufps.github.io/documents/... · 2018. 6. 15. · Programaci on Competitiva UFPS Universidad Francisco de Paula](https://reader035.vdocuments.co/reader035/viewer/2022062507/5fd6661929980f04d41cf64c/html5/thumbnails/32.jpg)
6. Vogons
32 of 80
![Page 33: Solucionario Maratón de Programación UFPS 2016programacioncompetitivaufps.github.io/documents/... · 2018. 6. 15. · Programaci on Competitiva UFPS Universidad Francisco de Paula](https://reader035.vdocuments.co/reader035/viewer/2022062507/5fd6661929980f04d41cf64c/html5/thumbnails/33.jpg)
6. Vogons
33 of 80
![Page 34: Solucionario Maratón de Programación UFPS 2016programacioncompetitivaufps.github.io/documents/... · 2018. 6. 15. · Programaci on Competitiva UFPS Universidad Francisco de Paula](https://reader035.vdocuments.co/reader035/viewer/2022062507/5fd6661929980f04d41cf64c/html5/thumbnails/34.jpg)
6. Vogons
34 of 80
![Page 35: Solucionario Maratón de Programación UFPS 2016programacioncompetitivaufps.github.io/documents/... · 2018. 6. 15. · Programaci on Competitiva UFPS Universidad Francisco de Paula](https://reader035.vdocuments.co/reader035/viewer/2022062507/5fd6661929980f04d41cf64c/html5/thumbnails/35.jpg)
6. Vogons
35 of 80
![Page 36: Solucionario Maratón de Programación UFPS 2016programacioncompetitivaufps.github.io/documents/... · 2018. 6. 15. · Programaci on Competitiva UFPS Universidad Francisco de Paula](https://reader035.vdocuments.co/reader035/viewer/2022062507/5fd6661929980f04d41cf64c/html5/thumbnails/36.jpg)
6. Vogons
36 of 80
![Page 37: Solucionario Maratón de Programación UFPS 2016programacioncompetitivaufps.github.io/documents/... · 2018. 6. 15. · Programaci on Competitiva UFPS Universidad Francisco de Paula](https://reader035.vdocuments.co/reader035/viewer/2022062507/5fd6661929980f04d41cf64c/html5/thumbnails/37.jpg)
6. Vogons
D[k] = max(D[k − 1],D[k] + D[k − 2])
37 of 80
![Page 38: Solucionario Maratón de Programación UFPS 2016programacioncompetitivaufps.github.io/documents/... · 2018. 6. 15. · Programaci on Competitiva UFPS Universidad Francisco de Paula](https://reader035.vdocuments.co/reader035/viewer/2022062507/5fd6661929980f04d41cf64c/html5/thumbnails/38.jpg)
6. Vogons
Este proceso se realiza con cada una de las columnas. Al final,tendremos en la ultima casilla de cada columna el valor total de esacolumna. Repetimos ahora el mismo procedimiento pero sobre esafila.
38 of 80
![Page 39: Solucionario Maratón de Programación UFPS 2016programacioncompetitivaufps.github.io/documents/... · 2018. 6. 15. · Programaci on Competitiva UFPS Universidad Francisco de Paula](https://reader035.vdocuments.co/reader035/viewer/2022062507/5fd6661929980f04d41cf64c/html5/thumbnails/39.jpg)
6. Vogons
39 of 80
![Page 40: Solucionario Maratón de Programación UFPS 2016programacioncompetitivaufps.github.io/documents/... · 2018. 6. 15. · Programaci on Competitiva UFPS Universidad Francisco de Paula](https://reader035.vdocuments.co/reader035/viewer/2022062507/5fd6661929980f04d41cf64c/html5/thumbnails/40.jpg)
7. Juanma and the Drinking Fountains
40 of 80
![Page 41: Solucionario Maratón de Programación UFPS 2016programacioncompetitivaufps.github.io/documents/... · 2018. 6. 15. · Programaci on Competitiva UFPS Universidad Francisco de Paula](https://reader035.vdocuments.co/reader035/viewer/2022062507/5fd6661929980f04d41cf64c/html5/thumbnails/41.jpg)
7. Juanma and the Drinking Fountains
Si tomamos n como el numero de bebederos, la solucion es el numerode regiones 4espaciales formadas por n - 1 hiperplanos. ¡Eso es todo!
41 of 80
![Page 42: Solucionario Maratón de Programación UFPS 2016programacioncompetitivaufps.github.io/documents/... · 2018. 6. 15. · Programaci on Competitiva UFPS Universidad Francisco de Paula](https://reader035.vdocuments.co/reader035/viewer/2022062507/5fd6661929980f04d41cf64c/html5/thumbnails/42.jpg)
7. Juanma and the Drinking Fountains
Si tomamos n como el numero de bebederos, la solucion es el numerode regiones 4espaciales formadas por n - 1 hiperplanos. ¡Eso es todo!
¡ES BROMA!
42 of 80
![Page 43: Solucionario Maratón de Programación UFPS 2016programacioncompetitivaufps.github.io/documents/... · 2018. 6. 15. · Programaci on Competitiva UFPS Universidad Francisco de Paula](https://reader035.vdocuments.co/reader035/viewer/2022062507/5fd6661929980f04d41cf64c/html5/thumbnails/43.jpg)
7. Juanma and the Drinking Fountains
Cada interseccion se da entre dos lineas, cada una de las cuales seforma con dos bebederos. Por lo tanto, el numero de interseccionesinternas es igual al numero de distintos subconjuntos de 4 puntosalrededor del cırculo. Esto es C(n, 4).
43 of 80
![Page 44: Solucionario Maratón de Programación UFPS 2016programacioncompetitivaufps.github.io/documents/... · 2018. 6. 15. · Programaci on Competitiva UFPS Universidad Francisco de Paula](https://reader035.vdocuments.co/reader035/viewer/2022062507/5fd6661929980f04d41cf64c/html5/thumbnails/44.jpg)
7. Juanma and the Drinking Fountains
Cada interseccion se da entre dos lineas, cada una de las cuales seforma con dos bebederos. Por lo tanto, el numero de interseccionesinternas es igual al numero de distintos subconjuntos de 4 puntosalrededor del cırculo. Esto es C(n, 4).
Si no hay bebederos (o hay solo uno), hay una sola region: latotalidad del cırculo.
44 of 80
![Page 45: Solucionario Maratón de Programación UFPS 2016programacioncompetitivaufps.github.io/documents/... · 2018. 6. 15. · Programaci on Competitiva UFPS Universidad Francisco de Paula](https://reader035.vdocuments.co/reader035/viewer/2022062507/5fd6661929980f04d41cf64c/html5/thumbnails/45.jpg)
7. Juanma and the Drinking Fountains
Cada interseccion se da entre dos lineas, cada una de las cuales seforma con dos bebederos. Por lo tanto, el numero de interseccionesinternas es igual al numero de distintos subconjuntos de 4 puntosalrededor del cırculo. Esto es C(n, 4).
Si no hay bebederos (o hay solo uno), hay una sola region: latotalidad del cırculo.
Cada linea anade una nueva region, y dado que una linea se formacon dos bebederos, el numero de lineas es igual al numero de distintossubconjuntos de 2 puntos alrededor del circulo. Esto es C(n,2).
Entonces tenemos: C(n,4) + C(n,2) + 1
45 of 80
![Page 46: Solucionario Maratón de Programación UFPS 2016programacioncompetitivaufps.github.io/documents/... · 2018. 6. 15. · Programaci on Competitiva UFPS Universidad Francisco de Paula](https://reader035.vdocuments.co/reader035/viewer/2022062507/5fd6661929980f04d41cf64c/html5/thumbnails/46.jpg)
7. Juanma and the Drinking Fountains
C (n, k) = n!k!(n−k)!
46 of 80
![Page 47: Solucionario Maratón de Programación UFPS 2016programacioncompetitivaufps.github.io/documents/... · 2018. 6. 15. · Programaci on Competitiva UFPS Universidad Francisco de Paula](https://reader035.vdocuments.co/reader035/viewer/2022062507/5fd6661929980f04d41cf64c/html5/thumbnails/47.jpg)
7. Juanma and the Drinking Fountains
C (n, k) = n!k!(n−k)!
C (n, 2) = n(n−1)(n−2)(n−3)...(2)(1)2(n−2)(n−3)...(2)(1)
47 of 80
![Page 48: Solucionario Maratón de Programación UFPS 2016programacioncompetitivaufps.github.io/documents/... · 2018. 6. 15. · Programaci on Competitiva UFPS Universidad Francisco de Paula](https://reader035.vdocuments.co/reader035/viewer/2022062507/5fd6661929980f04d41cf64c/html5/thumbnails/48.jpg)
7. Juanma and the Drinking Fountains
C (n, k) = n!k!(n−k)!
C (n, 2) = n(n−1)(n−2)(n−3)...(2)(1)2(n−2)(n−3)...(2)(1)
C (n, 2) = n(n−1)2
48 of 80
![Page 49: Solucionario Maratón de Programación UFPS 2016programacioncompetitivaufps.github.io/documents/... · 2018. 6. 15. · Programaci on Competitiva UFPS Universidad Francisco de Paula](https://reader035.vdocuments.co/reader035/viewer/2022062507/5fd6661929980f04d41cf64c/html5/thumbnails/49.jpg)
7. Juanma and the Drinking Fountains
C (n, k) = n!k!(n−k)!
C (n, 2) = n(n−1)(n−2)(n−3)...(2)(1)2(n−2)(n−3)...(2)(1)
C (n, 2) = n(n−1)2
C (n, 4) = n(n−1)(n−2)(n−3)(n−4)(n−5)...(2)(1)4!(n−4)(n−5)...(2)(1)
49 of 80
![Page 50: Solucionario Maratón de Programación UFPS 2016programacioncompetitivaufps.github.io/documents/... · 2018. 6. 15. · Programaci on Competitiva UFPS Universidad Francisco de Paula](https://reader035.vdocuments.co/reader035/viewer/2022062507/5fd6661929980f04d41cf64c/html5/thumbnails/50.jpg)
7. Juanma and the Drinking Fountains
C (n, k) = n!k!(n−k)!
C (n, 2) = n(n−1)(n−2)(n−3)...(2)(1)2(n−2)(n−3)...(2)(1)
C (n, 2) = n(n−1)2
C (n, 4) = n(n−1)(n−2)(n−3)(n−4)(n−5)...(2)(1)4!(n−4)(n−5)...(2)(1)
C (n, 4) = n(n−1)(n−2)(n−3)24
50 of 80
![Page 51: Solucionario Maratón de Programación UFPS 2016programacioncompetitivaufps.github.io/documents/... · 2018. 6. 15. · Programaci on Competitiva UFPS Universidad Francisco de Paula](https://reader035.vdocuments.co/reader035/viewer/2022062507/5fd6661929980f04d41cf64c/html5/thumbnails/51.jpg)
7. Juanma and the Drinking Fountains
Solucion:
n(n−1)(n−2)(n−3)24 + n(n−1)
2 + 1
(n4−6n3+23n2−18n+24)24
51 of 80
![Page 52: Solucionario Maratón de Programación UFPS 2016programacioncompetitivaufps.github.io/documents/... · 2018. 6. 15. · Programaci on Competitiva UFPS Universidad Francisco de Paula](https://reader035.vdocuments.co/reader035/viewer/2022062507/5fd6661929980f04d41cf64c/html5/thumbnails/52.jpg)
8. Are you ok?
Nos dan el mapa de una region como una lista de puntos queconforman un polıgono. Luego indican las personas a buscar en elmapa, para decir si estan en la region o no. Es decir, lo quepreguntan es, mirar si cada punto (persona) esta en el polıgono(mapa), y decir la cantidad de personas que cumplieron la condicion.
52 of 80
![Page 53: Solucionario Maratón de Programación UFPS 2016programacioncompetitivaufps.github.io/documents/... · 2018. 6. 15. · Programaci on Competitiva UFPS Universidad Francisco de Paula](https://reader035.vdocuments.co/reader035/viewer/2022062507/5fd6661929980f04d41cf64c/html5/thumbnails/53.jpg)
9. Multistory Labyrinth
Encontrar la ruta mas corta desde el inicio hasta el final del laberinto,o imprimir -1 en caso contrario. Se resuelve con un BFS (Busquedaen profundidad) simple.
53 of 80
![Page 54: Solucionario Maratón de Programación UFPS 2016programacioncompetitivaufps.github.io/documents/... · 2018. 6. 15. · Programaci on Competitiva UFPS Universidad Francisco de Paula](https://reader035.vdocuments.co/reader035/viewer/2022062507/5fd6661929980f04d41cf64c/html5/thumbnails/54.jpg)
9. Multistory Labyrinth
54 of 80
![Page 55: Solucionario Maratón de Programación UFPS 2016programacioncompetitivaufps.github.io/documents/... · 2018. 6. 15. · Programaci on Competitiva UFPS Universidad Francisco de Paula](https://reader035.vdocuments.co/reader035/viewer/2022062507/5fd6661929980f04d41cf64c/html5/thumbnails/55.jpg)
10. The price is correct
Un participante corre por un tablero cuadriculado, en el cualencienden luces con diferentes premios. Cada vez que el participantepisa una luz recibe ese premio. El participante solo puede moversearriba/abajo/derecha/izquierda o mantenerse quieto en cada segundo.Sabiendo en que momento se prende cada luz y en que posicion deltablero esta dicha luz, debe decirse cual es la mayor cantidad depremios que el concursante puede ganar.
55 of 80
![Page 56: Solucionario Maratón de Programación UFPS 2016programacioncompetitivaufps.github.io/documents/... · 2018. 6. 15. · Programaci on Competitiva UFPS Universidad Francisco de Paula](https://reader035.vdocuments.co/reader035/viewer/2022062507/5fd6661929980f04d41cf64c/html5/thumbnails/56.jpg)
10. The price is correct
Se resuelve por programacion dinamica.
f (x , y , t) = MAX (todos los posibles movimientos) + valor [x ][y ][t]
56 of 80
![Page 57: Solucionario Maratón de Programación UFPS 2016programacioncompetitivaufps.github.io/documents/... · 2018. 6. 15. · Programaci on Competitiva UFPS Universidad Francisco de Paula](https://reader035.vdocuments.co/reader035/viewer/2022062507/5fd6661929980f04d41cf64c/html5/thumbnails/57.jpg)
11. Josephus lottery II
Humbertov toma la lista de estudiantes y comienza a contar desde 1hasta k (en el sentido de las manecillas del reloj), el estudiante con elnumero k es removido de la lista. Humbertov comienza a contarnuevamente desde 1 hasta k comenzando en el siguiente estudiantepero... esta vez en el sentido contrario a las manecillas del reloj.Humbertov repetira este procedimiento hasta que solo quede 1estudiante.
� La lista es de 100 estudiantes.
� Conocemos la posicion inicial m de Pepito.
Debemos encontrar el valor mınimo k (1 ≤ k ≤ 1000) para el cualPepito ganara la rifa.
57 of 80
![Page 58: Solucionario Maratón de Programación UFPS 2016programacioncompetitivaufps.github.io/documents/... · 2018. 6. 15. · Programaci on Competitiva UFPS Universidad Francisco de Paula](https://reader035.vdocuments.co/reader035/viewer/2022062507/5fd6661929980f04d41cf64c/html5/thumbnails/58.jpg)
11. Josephus lottery II
Este es un proceso de simulacion. Debemos simular la situacion quenos presenta el problema, pero si realizamos esta simulacion por cadacaso de prueba probablemente terminemos con un TLE, ası que¿Como realizamos una simulacion que no termine en un TLE?
58 of 80
![Page 59: Solucionario Maratón de Programación UFPS 2016programacioncompetitivaufps.github.io/documents/... · 2018. 6. 15. · Programaci on Competitiva UFPS Universidad Francisco de Paula](https://reader035.vdocuments.co/reader035/viewer/2022062507/5fd6661929980f04d41cf64c/html5/thumbnails/59.jpg)
11. Josephus lottery II
Este es un proceso de simulacion. Debemos simular la situacion quenos presenta el problema, pero si realizamos esta simulacion por cadacaso de prueba probablemente terminemos con un TLE, ası que¿Como realizamos una simulacion que no termine en un TLE?
SOLUCION: Precalculo.
59 of 80
![Page 60: Solucionario Maratón de Programación UFPS 2016programacioncompetitivaufps.github.io/documents/... · 2018. 6. 15. · Programaci on Competitiva UFPS Universidad Francisco de Paula](https://reader035.vdocuments.co/reader035/viewer/2022062507/5fd6661929980f04d41cf64c/html5/thumbnails/60.jpg)
11. Josephus lottery II
Este es un proceso de simulacion. Debemos simular la situacion quenos presenta el problema, pero si realizamos esta simulacion por cadacaso de prueba probablemente terminemos con un TLE, ası que¿Como realizamos una simulacion que no termine en un TLE?
SOLUCION: Precalculo.
Sabemos de antemano que la lista de estudiantes siempre sera de 100,por lo tanto la posicion m de pepito estara siempre entre 1 y 100.
60 of 80
![Page 61: Solucionario Maratón de Programación UFPS 2016programacioncompetitivaufps.github.io/documents/... · 2018. 6. 15. · Programaci on Competitiva UFPS Universidad Francisco de Paula](https://reader035.vdocuments.co/reader035/viewer/2022062507/5fd6661929980f04d41cf64c/html5/thumbnails/61.jpg)
11. Josephus lottery II
Este es un proceso de simulacion. Debemos simular la situacion quenos presenta el problema, pero si realizamos esta simulacion por cadacaso de prueba probablemente terminemos con un TLE, ası que¿Como realizamos una simulacion que no termine en un TLE?
SOLUCION: Precalculo.
Sabemos de antemano que la lista de estudiantes siempre sera de 100,por lo tanto la posicion m de pepito estara siempre entre 1 y 100.Conocemos tambien que el valor maximo de k sera de 1000.
61 of 80
![Page 62: Solucionario Maratón de Programación UFPS 2016programacioncompetitivaufps.github.io/documents/... · 2018. 6. 15. · Programaci on Competitiva UFPS Universidad Francisco de Paula](https://reader035.vdocuments.co/reader035/viewer/2022062507/5fd6661929980f04d41cf64c/html5/thumbnails/62.jpg)
11. Josephus lottery II1 s t a t i c i n t s o l v e ( i n t k ) {2 Ar r a yL i s t<I n t e g e r> v a l u e s = new Ar r a yL i s t <>() ;3 f o r ( i n t i = 0 ; i < 100 ; i++) {4 v a l u e s . add ( i + 1) ;5 }6
7 /∗ S imu l a c i on ∗/8
9 r e t u r n v a l u e s . ge t (0 ) ;10 }
62 of 80
![Page 63: Solucionario Maratón de Programación UFPS 2016programacioncompetitivaufps.github.io/documents/... · 2018. 6. 15. · Programaci on Competitiva UFPS Universidad Francisco de Paula](https://reader035.vdocuments.co/reader035/viewer/2022062507/5fd6661929980f04d41cf64c/html5/thumbnails/63.jpg)
11. Josephus lottery II1 i n t c u r r e n t I n d e x = 0 ; boo l ean c l o c kw i s e = t r u e ;2
3 wh i l e ( v a l u e s . s i z e ( ) > 1) {4 i f ( c l o c kw i s e ) {5 c u r r e n t I n d e x += k − 1 ;6 } e l s e {7 c u r r e n t I n d e x −= k − 1 ;8 }9 c u r r e n t I n d e x += 1000 ∗ v a l u e s . s i z e ( ) ;
10 c u r r e n t I n d e x %= va l u e s . s i z e ( ) ;11 v a l u e s . remove ( c u r r e n t I n d e x ) ;12 i f ( ! c l o c kw i s e ) {13 c u r r e n t I n d e x −= 1 ;14 c u r r e n t I n d e x += 1000 ∗ v a l u e s . s i z e ( ) ;15 }16 c u r r e n t I n d e x %= va l u e s . s i z e ( ) ;17 c l o c kw i s e = ! c l o c kw i s e ;18 }
63 of 80
![Page 64: Solucionario Maratón de Programación UFPS 2016programacioncompetitivaufps.github.io/documents/... · 2018. 6. 15. · Programaci on Competitiva UFPS Universidad Francisco de Paula](https://reader035.vdocuments.co/reader035/viewer/2022062507/5fd6661929980f04d41cf64c/html5/thumbnails/64.jpg)
11. Josephus lottery II
Teniendo la simulacion solo nos queda conocer cual sera el menor kpara cada posible posicion m de Pepito en la lista.
1
2 i n t [ ] b e s t = new i n t [ 1 0 1 ] ;3 Ar ray s . f i l l ( bes t , I n t e g e r .MAX VALUE) ;4 f o r ( i n t i = 1 ; i <= 1000 ; i++) {5 i n t v = s o l v e ( i ) ;6 be s t [ v ] = Math . min ( b e s t [ v ] , i ) ;7 }
64 of 80
![Page 65: Solucionario Maratón de Programación UFPS 2016programacioncompetitivaufps.github.io/documents/... · 2018. 6. 15. · Programaci on Competitiva UFPS Universidad Francisco de Paula](https://reader035.vdocuments.co/reader035/viewer/2022062507/5fd6661929980f04d41cf64c/html5/thumbnails/65.jpg)
11. Josephus lottery II
Teniendo la simulacion solo nos queda conocer cual sera el menor kpara cada posible posicion m de Pepito en la lista.
1
2 i n t [ ] b e s t = new i n t [ 1 0 1 ] ;3 Ar ray s . f i l l ( bes t , I n t e g e r .MAX VALUE) ;4 f o r ( i n t i = 1 ; i <= 1000 ; i++) {5 i n t v = s o l v e ( i ) ;6 be s t [ v ] = Math . min ( b e s t [ v ] , i ) ;7 }
Ya con esto resolver cada uno de los casos es tan sencillo como haceresto:
65 of 80
![Page 66: Solucionario Maratón de Programación UFPS 2016programacioncompetitivaufps.github.io/documents/... · 2018. 6. 15. · Programaci on Competitiva UFPS Universidad Francisco de Paula](https://reader035.vdocuments.co/reader035/viewer/2022062507/5fd6661929980f04d41cf64c/html5/thumbnails/66.jpg)
11. Josephus lottery II
Teniendo la simulacion solo nos queda conocer cual sera el menor kpara cada posible posicion m de Pepito en la lista.
1
2 i n t [ ] b e s t = new i n t [ 1 0 1 ] ;3 Ar ray s . f i l l ( bes t , I n t e g e r .MAX VALUE) ;4 f o r ( i n t i = 1 ; i <= 1000 ; i++) {5 i n t v = s o l v e ( i ) ;6 be s t [ v ] = Math . min ( b e s t [ v ] , i ) ;7 }
Ya con esto resolver cada uno de los casos es tan sencillo como haceresto:
1 i n t v = sc . n e x t I n t ( ) ;2 System . out . p r i n t l n ( b e s t [ v ] ) ;
66 of 80
![Page 67: Solucionario Maratón de Programación UFPS 2016programacioncompetitivaufps.github.io/documents/... · 2018. 6. 15. · Programaci on Competitiva UFPS Universidad Francisco de Paula](https://reader035.vdocuments.co/reader035/viewer/2022062507/5fd6661929980f04d41cf64c/html5/thumbnails/67.jpg)
12. Funny day in Playland
En playland tenemos atracciones, categorias y tickets... Arya quiererecorrer todas las atracciones de Playland sin repetir ninguna.
� Las atracciones pertenecen a mınimo 1 y maximo 2 categorias.
� Para ingresar a una atraccion Arya debe entregar un ticket de unade las categorias a la que pertenece la atraccion.
� Cuando Arya se baja de la atraccion recibe un ticket de la otracategoria a la que pertenece la atraccion (o de la misma si laatraccion solo pertenece a una categoria).
� Arya puede elegir en que atraccion comienza.
67 of 80
![Page 68: Solucionario Maratón de Programación UFPS 2016programacioncompetitivaufps.github.io/documents/... · 2018. 6. 15. · Programaci on Competitiva UFPS Universidad Francisco de Paula](https://reader035.vdocuments.co/reader035/viewer/2022062507/5fd6661929980f04d41cf64c/html5/thumbnails/68.jpg)
12. Funny day in Playland
¿Como representar Playland?
68 of 80
![Page 69: Solucionario Maratón de Programación UFPS 2016programacioncompetitivaufps.github.io/documents/... · 2018. 6. 15. · Programaci on Competitiva UFPS Universidad Francisco de Paula](https://reader035.vdocuments.co/reader035/viewer/2022062507/5fd6661929980f04d41cf64c/html5/thumbnails/69.jpg)
12. Funny day in Playland
¿Como representar Playland? Correcto, a traves de un grafo, dondelas categorias son los nodos y las atracciones son los arcos, y cadaarco tiene un numero que lo identifica.
69 of 80
![Page 70: Solucionario Maratón de Programación UFPS 2016programacioncompetitivaufps.github.io/documents/... · 2018. 6. 15. · Programaci on Competitiva UFPS Universidad Francisco de Paula](https://reader035.vdocuments.co/reader035/viewer/2022062507/5fd6661929980f04d41cf64c/html5/thumbnails/70.jpg)
12. Funny day in Playland
¿Como representar Playland? Correcto, a traves de un grafo, dondelas categorias son los nodos y las atracciones son los arcos, y cadaarco tiene un numero que lo identifica.
70 of 80
![Page 71: Solucionario Maratón de Programación UFPS 2016programacioncompetitivaufps.github.io/documents/... · 2018. 6. 15. · Programaci on Competitiva UFPS Universidad Francisco de Paula](https://reader035.vdocuments.co/reader035/viewer/2022062507/5fd6661929980f04d41cf64c/html5/thumbnails/71.jpg)
12. Funny day in Playland
¿Que debemos hacer? Verificar si en Playland es un grafo Euleriano :)
71 of 80
![Page 72: Solucionario Maratón de Programación UFPS 2016programacioncompetitivaufps.github.io/documents/... · 2018. 6. 15. · Programaci on Competitiva UFPS Universidad Francisco de Paula](https://reader035.vdocuments.co/reader035/viewer/2022062507/5fd6661929980f04d41cf64c/html5/thumbnails/72.jpg)
12. Funny day in Playland
¿Que debemos hacer? Verificar si en Playland es un grafo Euleriano :)
TIP: Un grafo euleriano es aquel que cuenta con un camino en el cualse pasa por cada arista una sola vez.
72 of 80
![Page 73: Solucionario Maratón de Programación UFPS 2016programacioncompetitivaufps.github.io/documents/... · 2018. 6. 15. · Programaci on Competitiva UFPS Universidad Francisco de Paula](https://reader035.vdocuments.co/reader035/viewer/2022062507/5fd6661929980f04d41cf64c/html5/thumbnails/73.jpg)
12. Funny day in Playland
¿Que debemos hacer? Verificar si en Playland es un grafo Euleriano :)
TIP: Un grafo euleriano es aquel que cuenta con un camino en el cualse pasa por cada arista una sola vez.
Veamos un poco de teoria de grafos. Existen 3 condiciones que mepermiten determinar si un grafo es Euleriano o no. Estas son...
73 of 80
![Page 74: Solucionario Maratón de Programación UFPS 2016programacioncompetitivaufps.github.io/documents/... · 2018. 6. 15. · Programaci on Competitiva UFPS Universidad Francisco de Paula](https://reader035.vdocuments.co/reader035/viewer/2022062507/5fd6661929980f04d41cf64c/html5/thumbnails/74.jpg)
12. Funny day in Playland
1. El grafo es conexo.
Lo primero que debiamos hacer era validar que el grafo era conexo,esto podiamos hacerlo a traves de un DFS o un BFS. Si el grafo noera conexo podiamos facilmente imprimir un -1.
74 of 80
![Page 75: Solucionario Maratón de Programación UFPS 2016programacioncompetitivaufps.github.io/documents/... · 2018. 6. 15. · Programaci on Competitiva UFPS Universidad Francisco de Paula](https://reader035.vdocuments.co/reader035/viewer/2022062507/5fd6661929980f04d41cf64c/html5/thumbnails/75.jpg)
12. Funny day in Playland
2. El grado de todos los nodos del grafo es un numero par.
Si el grafo era conexo y no existen nodos de grado impar Arya podiaempezar su recorrido desde cualquier nodo, por lo tanto la respuestaen este caso era siempre 0.
75 of 80
![Page 76: Solucionario Maratón de Programación UFPS 2016programacioncompetitivaufps.github.io/documents/... · 2018. 6. 15. · Programaci on Competitiva UFPS Universidad Francisco de Paula](https://reader035.vdocuments.co/reader035/viewer/2022062507/5fd6661929980f04d41cf64c/html5/thumbnails/76.jpg)
12. Funny day in Playland
3. Existen 2 y solo 2 nodos de grado impar.
Si la cantidad de nodos impares era diferente de 0 o de 2 Arya nopuede realizar el recorrido, por lo tanto la respuesta era -1.
76 of 80
![Page 77: Solucionario Maratón de Programación UFPS 2016programacioncompetitivaufps.github.io/documents/... · 2018. 6. 15. · Programaci on Competitiva UFPS Universidad Francisco de Paula](https://reader035.vdocuments.co/reader035/viewer/2022062507/5fd6661929980f04d41cf64c/html5/thumbnails/77.jpg)
12. Funny day in Playland
Si el grafo es Euleriano y existen 2 nodos de grado impar, se debenrevisar cada una de las aristas de los nodos de grado impar para elegiraquella de menor indice, teniendo en cuenta que la arista elegida nodebe ser un puente (en lo posible).
77 of 80
![Page 78: Solucionario Maratón de Programación UFPS 2016programacioncompetitivaufps.github.io/documents/... · 2018. 6. 15. · Programaci on Competitiva UFPS Universidad Francisco de Paula](https://reader035.vdocuments.co/reader035/viewer/2022062507/5fd6661929980f04d41cf64c/html5/thumbnails/78.jpg)
12. Funny day in Playland
Pero no todo es tan bonito... siempre hay casos especiales y hayocasiones en las que si o si debemos elegir una arista puente.
78 of 80
![Page 79: Solucionario Maratón de Programación UFPS 2016programacioncompetitivaufps.github.io/documents/... · 2018. 6. 15. · Programaci on Competitiva UFPS Universidad Francisco de Paula](https://reader035.vdocuments.co/reader035/viewer/2022062507/5fd6661929980f04d41cf64c/html5/thumbnails/79.jpg)
12. Funny day in Playland
¿Como determinar los puentes de un grafo?
79 of 80
![Page 80: Solucionario Maratón de Programación UFPS 2016programacioncompetitivaufps.github.io/documents/... · 2018. 6. 15. · Programaci on Competitiva UFPS Universidad Francisco de Paula](https://reader035.vdocuments.co/reader035/viewer/2022062507/5fd6661929980f04d41cf64c/html5/thumbnails/80.jpg)
12. Funny day in Playland
¿Como determinar los puentes de un grafo?
Esto podemos hacerlo a traves del Algoritmo de Tarjan, que es unaleve modificacion de la busqueda en profundidad DFS :)
80 of 80