题目传送门
算法分析:把硬币个数以及面值存放在一个数组中,遍历一次判断就完事。
#include <iostream>
using namespace std;
int a[1005];
int main()
{
int n, m, t;
scanf("%d%d", &n, &m);
for (int i = 0; i < n; i++)
{
scanf("%d", &t);
a[t]++;
}
for (int i = 0; i < 1005; i++)
{
if (a[i])
{
a[i]--;
if (m > i && a[m - i])
{
cout << i << " " << m - i;
return 0;
}
}
}
puts("No Solution");
return 0;
}