这个题是别人的题解,自己的容易超时, 别人的代码用了Hash的方法来降低时间复杂度,非常巧妙。虽然代码看着很简单,但是不经过一定的练习也很难想出相应的方法。
#include <iostream>
using namespace std;
int a[1001];
int main() {
int n, m, temp;
scanf("%d %d", &n, &m);
for(int i = 0; i < n; i++) {
scanf("%d", &temp);
a[temp]++;
}
for(int i = 0; i < 1001; i++) {
if(a[i]) {
a[i]--;
if(m > i && a[m-i]) {
printf("%d %d", i, m - i);
return 0;
}
a[i]++;
}
}
printf("No Solution");
return 0;
}