A1048
给n个正整数,再给一个m,如果n个数中存在a+b=m(a<=b),则输出a,b。
如果有两组以上,则输出a最小的一组。
1 #include<cstdio>
2 #include<algorithm>
3 using namespace std;
4 const int N=1005;
5 int hashTable[N];
6 int main(){
7 int n,m,a;
8 scanf("%d %d",&n,&m);
9 for(int i=0;i<n;i++){
10 scanf("%d",&a);
11 ++hashTable[a];
12 }
13 for(int i=0;i<N;i++){
14 if(hashTable[i]&&hashTable[m-i]){
15 if(i==m-i&&hashTable[i]<=1){
16 continue;
17 }
18 printf("%d %d\n",i, m-i);
19 return 0;
20 }
21 }
22 printf("No Solution\n");
23 return 0;
24 }