安顺市网站建设_网站建设公司_Python_seo优化
2026/1/17 20:24:10 网站建设 项目流程

Eva 喜欢收集来自宇宙各地的硬币,包括火星等其他星球的硬币。一天她来到一家可以接受各种硬币支付的商场。但这里对付款有特殊要求:每笔账单必须恰好使用两枚硬币来支付精确金额。由于她带了多达 105105 枚硬币,她需要你的帮助。对于任意给定的支付金额,你需要告诉她是否能找到两枚硬币来支付。

输入规格:

每个输入文件包含一个测试用例。每个测试用例的第一行包含两个正整数:NN(≤105≤105,表示硬币总数)和 MM(≤103≤103,表示需支付的金额)。第二行包含 NN 个硬币面值,均为不超过 500 的正整数。行内数字以空格分隔。

输出规格:

对于每个测试用例,输出一行:若存在两枚硬币面值 V1V1​ 和 V2V2​(V1+V2=MV1​+V2​=M 且 V1≤V2V1​≤V2​),则输出 V1 V2V1​V2​。若有多种方案,则输出 V1V1​ 最小的那一对;若无方案,则输出No Solution

样例输入 1:

8 15 1 2 8 7 2 4 11 15

样例输出 1:

4 11

样例输入 2:

7 14 1 8 7 2 4 11 15

样例输出 2:

No Solution

代码:

#include <iostream> #include <bits/stdc++.h> #include <cstring> #include <iomanip> using namespace std; vector<int> v; bool cmp(int a,int b){ return a<b; } int main(){ int n,m;cin>>n>>m; for(int i=0;i<n;++i){ int k;cin>>k;v.push_back(k); } sort(v.begin(),v.end(),cmp); int flag=0; int l=0,r=n-1; while(l<r){ int s=v[l]+v[r]; if(s<m)l++; else if(s>m)r--; else{ cout<<v[l]<<" "<<v[r]; flag=1; break; } } if(!flag)cout<<"No Solution"<<endl; return 0; }

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询