#include <iostream>
#include <cstdio>
#include <algorithm>
using namespace std;
const int maxn=100001;
int main(int argc, char** argv) {
int n,k;
scanf("%d %d",&n,&k);
int num[maxn];
for(int i=0;i<n;i++){
scanf("%d",&num[i]);
}
sort(num,num+n);
bool flag=false;
for(int i=0;i<n;i++){
int x=num[i];
for(int j=i+1;j<n;j++){
int y=num[j];
if(x+y==k){
printf("%d %d",x,y);
flag=true;
break;
}
}
if(flag==true) break;
}
if(flag==false) printf("No Solution");
return 0;
#include <cstdio>
#include <algorithm>
using namespace std;
const int maxn=100001;
int main(int argc, char** argv) {
int n,k;
scanf("%d %d",&n,&k);
int num[maxn];
for(int i=0;i<n;i++){
scanf("%d",&num[i]);
}
sort(num,num+n);
bool flag=false;
for(int i=0;i<n;i++){
int x=num[i];
for(int j=i+1;j<n;j++){
int y=num[j];
if(x+y==k){
printf("%d %d",x,y);
flag=true;
break;
}
}
if(flag==true) break;
}
if(flag==false) printf("No Solution");
return 0;
}
//果然超时,下面进行优化;主要就是对那俩层循环。