#define LOCAL
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
const int MAXN=100000+10;
int a[MAXN];
int h[1000];
int main()
{
#ifdef LOCAL
freopen("data.in","r",stdin);
freopen("data.out","w",stdout);
#endif // LOCAL
int n,m;
cin>>n>>m;
for(int i=0;i<n;i++){
scanf("%d",&a[i]);
h[a[i]]++;
}
sort(a,a+n);
int i;
for(i=0;i<n;i++){
if(h[a[i]] && h[m-a[i]] &&a[i]*2!=m){
cout<<a[i]<<" "<<m-a[i];
break;
}else if(a[i]*2==m&&h[a[i]]>=2){
cout<<a[i]<<" "<<a[i];
break;
}
}
if(i==n) cout<<"No Solution";
return 0;
}
注意哈希表开的数组要足够大,每个元素虽然不超过500但是m-500可能超过500
【PAT】1048. Find Coins
最新推荐文章于 2022-08-26 20:00:33 发布