
#include<bits/stdc++.h>
using namespace std;
#define ll long long
map<int,int>mp;
const int maxn=1e5+100;
int q[maxn];
int main()
{
int n,k;
scanf("%d%d",&n,&k);
for(int i=0;i<n;i++)
{
int c;
scanf("%d",&q[i]);
mp[q[i]]++;
}
sort(q,q+n);
int flag=0;
for(int i=0;i<n;i++)
{
int c=k-q[i];
if(mp[c]>0&&q[i]<=c)
{
if(q[i]<c)
{
flag=1;
printf("%d %d\n",q[i],c);
}
else
{
if(mp[q[i]]>=2)
{
flag=1;
printf("%d %d\n",q[i],c);
}
else continue;
}
break;
}
}
if(flag==0)
{
printf("No Solution\n");
}
}
解决n个数中k的倍数查询问题:C++实现与优化
本文介绍了一个编程问题,涉及使用C++实现一个查找数组中k的倍数并返回符合条件的最小和最大数的算法。通过`map`数据结构和排序优化,博主展示了如何在给定的整数数组中找到满足条件的子集。当没有解决方案时,程序会输出'NoSolution'。
355

被折叠的 条评论
为什么被折叠?



