Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <cstdlib>
- using namespace std;
- int n,S,v[10],x[10],c[100];
- void afisare(int k)
- {
- for(int i=1;i<=k;++i)
- cout<<x[i]<<' ';
- cout<<'\n';
- }
- void backtracking(int k,int sum)
- {
- if(k<=n)
- for(int i=0;i<=min((S-sum)/v[k],c[k]);++i)
- {
- x[k]=i;
- if(sum+x[k]*v[k]==S)
- afisare(k),exit(0);
- else
- backtracking(k+1,sum+x[k]*v[k]);
- }
- }
- int main()
- {
- cin>>n>>S;
- for(int i=1;i<=n ;++i)
- cin>>v[i];
- for(int i=1;i<=n;++i)
- cin>>c[i];
- backtracking(1,0);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement