您的位置:首页 > 其它

1048. Find Coins (25)

2016-03-09 23:44 381 查看
题目传送门:https://www.patest.cn/contests/pat-a-practise/1048

AC代码 此种方法请注意 该数字正好是目标的二分之一时,如果只有一个数字应该输出无解.
#include <iostream>
#include <vector>
#include <stdio.h>
#include <algorithm>
#include <queue>
#include <string.h>
#include <unordered_map>
using namespace std;
int main(){
int n,m;
unordered_map<int,int>ans;
scanf("%d %d",&n,&m);
vector<int>nums(n);
for (int i=0; i<n; ++i) {
scanf("%d",&nums[i]);
ans[nums[i]]++;
}
sort(nums.begin(), nums.end());
int k = -1;
for (int i=0; i<n; ++i) {
if(ans[m-nums[i]]!=0){
if(nums[i]==m-nums[i]&&ans[nums[i]]==1)
continue;
k = i;
break;
}
}
if(k==-1)
printf("No Solution\n");
else
printf("%d %d\n",nums[k],m-nums[k]);
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: