Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #define MAX 7
- using namespace std;
- int n,S,b[MAX],x[MAX],y[MAX];
- void citire()
- {
- cin>>n>>S;
- for(int i=1;i<=n;++i)
- cin>>b[i];
- for(int i=1;i<=n;++i)
- cin>>y[i];
- }
- int suma(int k)
- {
- int s=0;
- for(int i=1;i<=k;++i)
- s+=x[i]*b[i];
- return s;
- }
- int valid(int k)
- {
- return S>=suma(k);
- }
- void scrie()
- {
- int nr=0;
- for(int i=1;i<=n;++i)
- if(x[i]>0)
- ++nr;
- if(nr==n)
- {
- for(int i=1;i<=n;++i)
- cout<<x[i]<<' ';
- cout<<'\n';
- exit(0);
- }
- }
- void bk(int k)
- {
- if(k==n+1)
- {
- if(suma(n)==S)
- scrie();
- }
- else
- for(int i=0;i<=y[k];++i)
- {
- x[k]=i;
- if(valid(k))
- bk(k+1);
- }
- }
- int main()
- {
- citire();
- bk(1);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement