Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<iostream>
- #include<cstdio>
- #include<vector>
- #include<cstring>
- #include<queue>
- #include<map>
- #include<set>
- #include<algorithm>
- #include<stack>
- #include<cmath>
- #include<iomanip>
- #include<cstdlib>
- using namespace std;
- #define f(i,a,b) for(i=a;i<b;i++)
- #define rep(i,n) f(i,0,n)
- #define pb push_back
- #define ss second
- #define ff first
- #define vi vector<int>
- #define vl vector<ll>
- #define s(n) scanf("%d",&n)
- #define ll long long
- #define mp make_pair
- #define PII pair <int ,int >
- #define PLL pair<ll,ll>
- #define inf 1000*1000*1000+5
- #define v(a,size,value) vi a(size,value)
- #define sz(a) a.size()
- #define all(a) a.begin(),a.end()
- #define tri pair < int , PII >
- #define TRI(a,b,c) mp(a,mp(b,c))
- #define xx ff
- #define yy ss.ff
- #define zz ss.ss
- #define in(n) n = inp()
- #define vii vector < PII >
- #define vll vector< PLL >
- #define viii vector < tri >
- #define vs vector<string>
- #define foreach(v,c) for( typeof((c).begin()) v = (c).begin(); v != (c).end(); ++v)
- #define fill(a,v) memset(a,v,sizeof a)
- #define printall(a) rep(i,sz(a))cout<<a[i]<<endl;
- #define DREP(a) sort(all(a)); a.erase(unique(all(a)),a.end());
- #define INDEX(arr,ind) (lower_bound(all(arr),ind)-arr.begin())
- #define ok if(debug)
- ll pow(ll num,ll power){if(power==0)return 1;if(power==1)return num; ll t = pow(num,power/2);return power%2?t*t*num:t*t;}
- int check(int);
- int binarysearch(int len)//finds last 1 in 11111000
- {int lo = 1,hi = len,mid,flag;while(lo<=hi){mid = hi+lo>>1;(flag = check(mid))?lo = mid+1:hi = mid-1;}return mid-1+flag;}
- const int N = 105;
- int debug = 1;
- int check(int a){return a;}
- inline int inp(){int n=0,s=1,c=getchar();if(c=='-')s=-1;while(c<48)c=getchar();while(c>47)n=(n<<3)+(n<<1)+c-'0',c=getchar();return n*s;}
- int B,K[N],P[N],n;
- void solve(int no[],int index,int sum)
- {
- if(sum > B)return;
- int i;
- if(sum == B){
- rep(i,n)cout<<no[i]<<" ";cout<<endl;
- return;
- }
- if(index >= n)return;
- for(i=0;i<=K[index];i++)
- {
- no[index] = i;
- solve(no,index+1,sum + i*P[index]);
- }
- }
- int main()
- {
- ios::sync_with_stdio(false);
- int i,j,t;
- cin>>n;
- cin>>B;
- rep(i,n)cin>>K[i];
- rep(i,n)cin>>P[i];
- int a[105] = {0};
- solve(a,0,0);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement