#include <cstdio>
#include <cstdlib>
#include <iostream>
#include <algorithm>
#include <string>
#include <cstring>
#include <vector>
#include <queue>
using namespace std;
int a[100005]={0};
int main()
{
// freopen("in.txt","r",stdin);
int N,M;
scanf("%d %d",&N,&M);
for(int i=1;i<=N;i++)
{
scanf("%d",&a[i]);
}
sort(a+1,a+1+N);
int p;
int i;
for(i=1;i<=N;i++)
{ // a[i+1]~a[N]中第一个超过M-a[i]的数
p=upper_bound(a+i+1,a+N+1,M-a[i])-a;
if(a[p-1]+a[i]==M && p-1!=i)//p-1!=i表示不能是同一个数用两次
{
printf("%d %d\n",a[i],a[p-1]);
break;
}
}
if(i==N+1)
printf("No Solution");
//for(int i=0;i<=N;i++)
// printf("%d ",a[i]);
return 0;
}
1048. Find Coins (25)
最新推荐文章于 2024-02-20 17:56:40 发布