解题代码
#include<cstdio>
#include<algorithm>
#include<unordered_map>
using namespace std;
int judge[1001];
int a[100000];
int main() {
int N, M, i;
scanf("%d%d", &N, &M);
for (int i = 0; i < N; i++) {
scanf("%d", &a[i]);
judge[a[i]] ++;
}
sort(a, a + N);
for (i = 0; i < N; i++) {
if (judge[M - a[i]] && (M - a[i] != a[i] || (M - a[i] == a[i] && judge[a[i]] >= 2))) {
printf("%d %d", a[i], M - a[i]);
break;
}
}
if (i == N) printf("No Solution");
return 0;
}
测试结果
问题整理
1.哈希。