Advertisement
Es7evam

Au4B - Troco de moedinhas

Apr 4th, 2016
100
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.71 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. typedef long long ll;
  4.  
  5. const int N = 2002;
  6. ll mo = 1e9; //mod que vai ser tirado
  7. ll dp[N][N]; //criando dp pra salvar os dados
  8. int v[N];
  9. int n;
  10.  
  11. ll f(int T, int m){
  12. if (T == 0) return 1LL;
  13. if (T < 0 or n == m) return 0LL;
  14. if (dp[T][m] != -1) return dp[T][m]; //já foi feita? dp
  15.  
  16. ll res = f(T,m+1); //função recursiva
  17. res = (res + f (T- v[m],m))%mo; //função recursiva, tirando mod
  18. return dp[T][m] = res; //salvando (dp)
  19. }
  20. int main(){
  21. int t;
  22. cin >> n >> t; //nro de moedas e troco que deseja obter
  23. for (int i=0; i<n; ++i){
  24. cin >> v[i]; //ler valores
  25. }
  26. memset (dp, -1, sizeof dp); //setando dp
  27. cout << f(t,0) << endl;
  28. return 0;
  29. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement