寒假每日一题Week2 day10 AcWing 1532. 找硬币(哈希表)
程序员文章站
2022-07-12 21:36:30
...
AcWing 1532. 找硬币
题意:
给你n种面值的硬币,
问是否可以找到两个硬币的面值之和等于m
如果找得到,输出第一个v1最小的解。
反之输出无解。
思路:
边读数据,边记录即可。
假如有两个硬币的话,更新最小值就行了。
AC
# include <bits/stdc++.h>
using namespace std;
int main(){
unordered_map<int,int>ma;
int n, m, x, mi=1e9+10;
cin>>n>>m;
for(int i = 1; i <= n; i++ ){
cin>>x;
if(ma.count(m-x))mi = min(mi, min(x,m-x));
ma[x]++;
}
if(mi==1e9+10)puts("No Solution");
else cout<<mi<<' '<<m-mi;
return 0;
}