Caso # | Resultado | Tiempo | Memoria |
---|---|---|---|
#1 |
Correcto
|
0.001 s | 0 KBi |
#2 |
Tiempo límite excedido
|
1.056 s | 0 KBi |
#3 |
Correcto
|
0.005 s | 24 KBi |
#4 |
Correcto
|
0.003 s | 20 KBi |
#5 |
Tiempo límite excedido
|
1.06 s | 2 KBi |
#6 |
Tiempo límite excedido
|
1.07 s | 0 KBi |
#7 |
Tiempo límite excedido
|
1.1 s | 0 KBi |
#8 |
Tiempo límite excedido
|
1.1 s | 0 KBi |
#9 |
Tiempo límite excedido
|
1.082 s | 0 KBi |
#10 |
Tiempo límite excedido
|
1.084 s | 0 KBi |
#11 |
Tiempo límite excedido
|
1.064 s | 23 KBi |
#12 |
Tiempo límite excedido
|
1.076 s | 0 KBi |
#13 |
Correcto
|
0.261 s | 5 KBi |
#14 |
Tiempo límite excedido
|
1.1 s | 0 KBi |
#15 |
Tiempo límite excedido
|
1.07 s | 31 KBi |
#include <bits/stdc++.h> using namespace std; int contar(int cantidad, vector<int> &monedas, int index) { if (cantidad == 0) { return 1; } else if (cantidad < 0 || monedas.size() == index) { return 0; } else { int restandoMoneda = contar(cantidad - monedas[index], monedas, index); int sinRestarMoneda = contar(cantidad, monedas, index + 1); return restandoMoneda + sinRestarMoneda; } } int main() { int N; vector<int> monedas; int M; cin >> N; for (int i = 0; i < N; i++) { int mon; cin >> mon; monedas.push_back(mon); } cin >> M; while (M > 0) { int cantidad; cin >> cantidad; cout << contar(cantidad, monedas, 0) << endl; M--; } return 0; }