Advertisement
Guest User

radusu

a guest
Sep 17th, 2019
185
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.07 KB | None | 0 0
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. int Sum;
  6. int A[101] , B[101] , Nr[101] , N , S;
  7. bool Afis = false;
  8.  
  9. void Afisare()
  10. {
  11. int i;
  12. for(i = 1 ; i <= N ; i++)
  13. cout << A[i] << " ";
  14. cout << endl;
  15. }
  16.  
  17. bool OK(int Top)
  18. {
  19. int i ;
  20. Sum = 0;
  21. for(i = 1 ; i <= Top ; i++)
  22. Sum += A[i] * B[i];
  23. if(Sum > S)
  24. return 0;
  25. if(Top == N && Sum != S)
  26. return 0;
  27. return 1;
  28. }
  29.  
  30. void Back()
  31. {
  32. int Top , C;
  33. Top = 1;
  34. A[Top] = -1;
  35. while(Top > 0 && Afis == false)
  36. {
  37. C = 0;
  38. while(!C && A[Top] < Nr[Top])
  39. {
  40. A[Top]++;
  41. C = OK(Top);
  42. }
  43. if(!C)
  44. Top--;
  45. else
  46. {
  47. if(Top == N)
  48. {
  49. Afis = true;
  50. Afisare();
  51. }
  52. else A[++Top] = -1;
  53. }
  54. }
  55. }
  56.  
  57. int main()
  58. {
  59. int i;
  60. cin >> N >> S;
  61. for(i = 1 ; i <= N ; i++)
  62. cin >> B[i];
  63. for(i = 1 ; i <= N ; i++)
  64. cin >> Nr[i];
  65. Back();
  66. return 0;
  67. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement