#include <iostream>
using namespace std;
#define N 99
int Cost(int i);
int Back(int i);
int n, b;
int cv = 0;
int cw = 0;
int B = 0;
int Y[N], V[N], W[N], X[N];
int main()
{
cout << "input n:";
cin >> n;
cout << "input b:";
cin >> b;
cout << "input V:";
for (int a = 1; a <= n; a++)
cin >> V[a];
cout << "input W:";
for (int a = 1; a <= n; a++)
cin >> W[a];
int i = 0;
while (true)
{
int C = Cost(i);
if (C >=B)
{
i = i + 1;
if (cw + W[i] <= b)
{
cv = cv + V[i];
cw = cw + W[i];
X[i] = 1;
}
else
X[i] = 0;
}
else
i = Back(i);
if (i == n && cv>=B)
{
B = cv;
for (int a = 1; a <= n; a++)
Y[a] = X[a];
i = Back(n);
}
if (i == 0)
{
cout << "Y:";
for (int a=1; a <= n; a++)
cout << Y[a];
cout << endl;
cout << "B:" << B;
return 0;
}
}
}
int Cost(int i)
{
int c = cv;
for (int j = i + 1; j <= n; j++)
c = c + V[i];
return c;
}
int Back(int i)
{
if (i == 1 && X[i] == 0)
return 0;
if (X[i] == 1)
{
cv = cv - V[i];
cw = cw - W[i];
if (i < n)
{
X[i] = 0;
return i;
}
else
Back(i - 1);
}
else
Back(i - 1);
}