考察查询表
#include<iostream>
#include<vector>
#define FaceMax 1000
int main()
{
int n, m;
while(scanf("%d%d",&n,&m)!=EOF)
{
//input
std::vector<int> coins;
coins.assign(FaceMax+1, 0);
while(n--)
{
int tmp;
scanf("%d",&tmp);
coins[tmp]++;
}
//search
bool flag = false;
for(int i = 1; i <= m/2; ++i)
{
coins[i]--;
coins[m-i]--;
if(coins[i]>=0 && coins[m-i] >= 0)
{
printf("%d %d\n",i,m-i);
flag = true;
break;
}
}
//no solution
if(!flag)
printf("No Solution\n");
}
}