51nod 1001 数组中和等于K的数对

版权声明:转载请注明来源 https://blog.csdn.net/xin_jun/article/details/53024221
#include <bits/stdc++.h>
using namespace std;

set<long long>st;
long long a[50050];

int main()
{
	long long n,k,i,flag;
	while(cin>>k>>n)
	{
		st.clear();
		for(i=1;i<=n;i++)
		{
			scanf("%lld",&a[i]);
			st.insert(a[i]);
		}
		sort(a+1,a+1+n);
		flag=1;
		for(i=1;i<=n&&a[i]<k/2;i++)
		{
			if(st.find(k-a[i])!=st.end())
			{
				printf("%lld %lld\n",a[i],k-a[i]);
				flag=0;
			}
		}
		if(flag)
			printf("No Solution\n");
	}
}

阅读更多
换一批

没有更多推荐了,返回首页