Tarea 5 de Diseño de Algoritmos

Trimestre 2010 Primavera
Entrega: 23 de junio de 2010 a las 22:00.

Por favor noten que son casi los mismos problemas que los de la Tarea 1 y de la Tarea 4, posiblemente con nuevas restricciones:

Problema 1: Los números de Pell se definen de la siguiente manera: P(0) = 0, P(1) = 1 y P(N) = 2 P(N-1) + P(N-2) para N > 1. Escribe un programa basado en un  algoritmo de memorización o programación dinámica y llamado pdpellZZ (donde ZZ es la clave de dos dígitos asignada por el profesor) que lea un entero N y que calcule el N-ésimo número de Pell P(N). Por ejemplo si N = 3 entonces P(3) = 5. Puedes suponer que 0 <= N <= 1,000,000. Todos los cálculos los debes hacer con enteros de 64 bits con signo.

Ejemplo de entrada
Ejemplo de salida
3
5

Problema 2: Sean N, P y Q tres enteros positivos. Diseña un algoritmo de memorización o programación dinámica que calcule la cantidad S de formas en que se puede obtener el valor N sumando enteros distintos entre P y Q. Dos sumas se consideran idénticas si sólo difieren en el orden de sus sumandos. Por ejemplo, si N = 12, P = 3 y Q = 7 entonces S = 2 porque 12 se puede obtener de las siguientes formas: 3+4+5 y 5+7. Escribe un programa llamado pdsumaZZ (donde ZZ es una clave de dos dígitos asignada por el profesor) que implemente tu algoritmo. La entrada a tu programa serán los tres enteros N, P y Q (con 1 <= P <= Q <= N <= 1000) y la salida de tu programa será el entero S.

Ejemplo de entrada Ejemplo de salida
12 3 7
2

Notas: Tus programas no deben leer ni escribir nada adicional a lo que se indica en el enunciado. El tiempo de ejecución de sus algoritmos será considerado como parte de la evaluación.