#include<iostream>
#include<stdio.h>
#include<iomanip>
#include<algorithm>
using namespace std;
int w[20000];
int main()
{
int m,i,j,q,o;
while(cin>>w[1])
{
q=2;
while(getchar()!='\n')
{
cin>>w[q++];
}
cin>>m;
// int n[q][m+1];
// for(j=0; j<m+1; j++)
// if(j<w[q])
// n[q][j]=0;
// else
// n[q][j]=w[q];
// for(i=q-1; i>0; i--)
// for(j=0; j<m+1; j++)
// if(j<w[i])
// n[i][j]=n[i+1][j];
// else
// n[i][j]=max(n[i+1][j],n[i+1][j-w[i]]+w[i]);
//优化后(把q优化成2)
long long n[2][(m+1)];
for(j=0; j<=m; j++)
if(j<w[q])
n[1][j]=0;
else
n[1][j]=w[q];
for(i=q-1,o=0; i>0; i--,o--)
{
for(j=0; j<=m; j++)
{
if(!o)
{
if(j<w[i])
n[0][j]=n[1][j];
else
n[0][j]=max(n[1][j],(n[1][(j-w[i])]+w[i]));
}
else
{
if(j<w[i])
n[1][j]=n[0][j];
else
n[1][j]=max(n[0][j],(n[0][j-w[i]]+w[i]));
}
}
if(!o)o=2;
else o=1;
}
// for(i=1; i<2; i++)
// {
// for(j=1; j<m+1; j++)
// cout<<setw(3)<<n[i][j];
// cout<<endl;
// }
if(n[1][m]==m||n[0][m]==m)
cout<<"Yes"<<endl;
else
cout<<"No"<<endl;
}
}思路来自伙伴的方法