

n==4和n==5时,五张牌都知道。
n==1时,只知道一张牌,不能凑出。
n==2时,如果两张牌相加为m,则能凑出。
n==3时,如果3张中的2张或是剩下2张相加为m,则能凑出。
#include<string>
#include<iostream>
#include<algorithm>
#include<cstring>
#include<cstdio>
using namespace std;
int n,m;
int a[10]={};
int main()
{
int x;
cin>>n>>m;
for(int i=1;i<=n;i++)
{
cin>>x;
a[x]=1;
}
if(m<3||m>9)
{
cout<<"no"<<endl;
return 0;
}
if(n==5||n==4)
cout<<"yes"<<endl;
else if(n==1)
cout<<"no"<<endl;
else
{
int vis=0;
if(n==3)
{
for(int i=1;i<=5;i++)
for(int j=1;j<=5;j++)
if(i!=j)
{
if(i+j==m)
{
if(a[i]==1&&a[j]==1)
vis=1;
if(a[i]==0&&a[j]==0)
vis=1;
}
}
}
if(n==2)
{
for(int i=1;i<=5;i++)
for(int j=1;j<=5;j++)
if(i!=j)
{
if(i+j==m)
{
if(a[i]==1&&a[j]==1)
vis=1;
}
}
}
if(vis)
cout<<"yes"<<endl;
else
cout<<"no"<<endl;
}
printf("\n");
return 0;
}