Bienvenido(a), Visitante. Por favor, ingresa o regístrate.

Ingresar con nombre de usuario, contraseña y duración de la sesión

 
Búsqueda Avanzada

15.707 Mensajes en 3.130 Temas- por 371 Usuarios - Último usuario: lasfirrot
Mayo 18, 2012, 04:04:01
Foro de Hispabyte.netProgramaciónCompeticiones de programación y algorítmicaACM UVATema: 11057 Exact Sum
Páginas: [1]   Ir Abajo
Imprimir
Autor Tema: 11057 Exact Sum  (Leído 972 veces)
0 Usuarios y 1 Visitante están viendo este tema.
HQH
Administrator
Miembro Imprescindible
*****
Mensajes: 1.813



Ver Perfil
« : Agosto 31, 2006, 05:21:08 »


11057 Exact Sum
http://acm.uva.es/p/v110/11057.html

En este problema, nos dan el precio de varios libros, de los cuales debemos comprar 2 y que su precio sea exactamente el dinero que tenemos. Nos garantizan que habra solucion, asi que no hay que pensar en ese caso.

La clave para resolverlo es hacerse un array con los distintos precios de los libros y ordenarlo crecientemente (menos a mayor). Podemos ordenarlo por ejemplo mediante la orden qsort de C.

Tras tenerlos ordenados, ponemos una variable que apunte a la primera posicion del array (suponemos i) y otra que apunte a la ultima posicion del array(suponemos j). Tras ello buscamos hacia adentro las soluciones que su suma de precios de el dinero que tenemos.

si precios + precios[j] == dinero
     solucion
     i++
     j--
sino si precios  + precios[j] < dinero
     i++;
sino si precios  + precios[j] > dinero
    j--

Lo hacemos mientras i<j . Cada vez que encontremos una solucion, sustiuira a la anterior (para conseguir que la solucion obtenida sea el par con distancia minima).

Asi obtendremos la solucion correcta.
En línea
Páginas: [1]   Ir Arriba
Imprimir
Foro de Hispabyte.netProgramaciónCompeticiones de programación y algorítmicaACM UVATema: 11057 Exact Sum
Ir a:  


Tema diseñado por RJ-45 para Hispabyte.net basado en el
theme famouspadexx v.09 designed by Formado Comprido
Downloable here. My present to padexx.de