Caso # | Resultado | Tiempo | Memoria |
---|---|---|---|
#1 |
Correcto
|
0.015 s | 3 KBi |
#2 |
Incorrecto
|
0.027 s | 3 KBi |
#3 |
Correcto
|
0.018 s | 3 KBi |
#4 |
Correcto
|
0.015 s | 3 KBi |
#5 |
Tiempo límite excedido
|
1.566 s | 3 KBi |
#6 |
Tiempo límite excedido
|
1.539 s | 3 KBi |
#7 |
Tiempo límite excedido
|
1.558 s | 3 KBi |
#8 |
Tiempo límite excedido
|
1.545 s | 3 KBi |
#9 |
Tiempo límite excedido
|
1.584 s | 3 KBi |
#10 |
Tiempo límite excedido
|
1.562 s | 3 KBi |
#11 |
Tiempo límite excedido
|
1.537 s | 3 KBi |
#12 |
Tiempo límite excedido
|
1.572 s | 3 KBi |
#13 |
Tiempo límite excedido
|
1.543 s | 3 KBi |
#14 |
Tiempo límite excedido
|
1.58 s | 3 KBi |
#15 |
Tiempo límite excedido
|
1.55 s | 3 KBi |
def contar_formas(D, S): # Inicializar una lista de tamaño S+1 con ceros formas = [0] * (S + 1) formas[0] = 1 # Iterar sobre las denominaciones de monedas for d in D: for s in range(d, S + 1): formas[s] += formas[s - d] return formas[S] # Leer la entrada N = int(input()) denominaciones = list(map(int, input().split())) M = int(input()) # Procesar las consultas for _ in range(M): consulta = int(input()) formas_posibles = contar_formas(denominaciones, consulta) print(formas_posibles)