█████████ ████ ███░░░░░███ ░░███ ███ ░░░ ██████ ███████ ██████ ██████ ░███ ███░░███ ███░░███ ███░░███ ███░░███ ░███ ░███ ░███░███ ░███ ░███████ ░███ ░███ ░░███ ███░███ ░███░███ ░███ ░███░░░ ░███ ░███ ░░█████████ ░░██████ ░░████████░░██████ ░░██████ ░░░░░░░░░ ░░░░░░ ░░░░░░░░ ░░░░░░ ░░░░░░

Envío 7130

Problema 0xcb - Contar maneras de formar una cantidad con monedas

  • Autor: dperezne
  • Fecha: 2023-09-20 22:47:05 UTC (Hace 8 meses)
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
Puntos totales: 20 / 100

Código

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)