企业运营管理平台,苏州做网站优化,WordPress安全社区,做金馆长网站网站例题#xff1a; 伊娃喜欢从整个宇宙中收集硬币。 有一天#xff0c;她去了一家宇宙购物中心购物#xff0c;结账时可以使用各种硬币付款。 但是#xff0c;有一个特殊的付款要求#xff1a;每张帐单#xff0c;她只能使用恰好两个硬币来准确的支付消费金额。 给定她拥有…例题 伊娃喜欢从整个宇宙中收集硬币。 有一天她去了一家宇宙购物中心购物结账时可以使用各种硬币付款。 但是有一个特殊的付款要求每张帐单她只能使用恰好两个硬币来准确的支付消费金额。 给定她拥有的所有硬币的面额请你帮她确定对于给定的金额她是否可以找到两个硬币来支付。
输入格式 第一行包含两个整数 N 和 M分别表示硬币数量以及需要支付的金额。 第二行包含 N 个整数表示每个硬币的面额。
输出格式 输出一行包含两个整数 V1,V2表示所选的两个硬币的面额使得 V1≤V2 并且 V1V2M。 如果答案不唯一则输出 V1 最小的解。 如果无解则输出 No Solution。
数据范围 1≤N≤105, 1≤M≤1000 代码如下
#include iostream
#include unordered_set
#include cstring
using namespace std;
const int MAX 10010;int main()
{int n,m;cinnm;unordered_setint hash;int v1 MAX,v2;for (int i 0;in;i){int a,b;cina;b m-a;if (hash.count(b)){hash.insert(a);if (a b) swap(a,b);if (a v1) v1 a,v2 b;}else{hash.insert(a);}}if(v1!MAX)coutv1 v2endl;else{coutNo Solutionendl;}return 0;
}