fork download
  1. #include <iostream>
  2. #include <climits>
  3. using namespace std;
  4.  
  5. int main() {
  6.  
  7. long long n,x;
  8. cin>>n>>x;
  9.  
  10. long long a[n];
  11. for(long long i=0;i<n;i++)
  12. {
  13. cin>>a[i];
  14. }
  15.  
  16. long long DP[x+1];
  17.  
  18.  
  19. for(long long j=0;j<=x;j++)
  20. {
  21. DP[j]=INT_MAX;
  22. }
  23.  
  24. DP[0]=0;
  25.  
  26. for(long long i=1;i<=n;i++)
  27. {
  28. for(long long j=0;j<=x;j++)
  29. {
  30. if(j >= a[i-1])
  31. {
  32. DP[j] = min(DP[j-a[i-1]]+1,DP[j]);
  33. }
  34. }
  35. }
  36.  
  37.  
  38. if(DP[x] == INT_MAX)
  39. {
  40. cout<<-1<<endl;
  41. }
  42. else
  43. {
  44. cout<<DP[x]<<endl;
  45. }
  46. return 0;
  47. }
Success #stdin #stdout 0s 5280KB
stdin
3 11
1 5 7
stdout
3