1048. Find Coins (25)

来源:互联网 发布:杭州达内java 编辑:程序博客网 时间:2024/05/21 15:39

IDEA

1.注意题目给的数字范围的大小,m<=1000,可见将银币大小作为索引的数组为1001即可,该数组存储题目中给出的硬币数,没给的为0

2.从1-m/2遍历即可,不用遍历到m


CODE

#include<iostream>#include<vector> #include<fstream>using namespace std;#define MAX 1001int main(){#ifndef ONLINE_JUDGEfreopen("input.txt","r",stdin);#endifint n,m;while(cin>>n>>m){vector<int> vec(MAX,0);for(int i=0;i<n;i++){int val;cin>>val;vec[val]++;}int flag=0;int v;for(v=1;v<=m/2;v++){vec[v]--;vec[m-v]--;if(vec[v]>=0&&vec[m-v]>=0){flag=1;break;}}if(flag){cout<<v<<" "<<m-v<<endl;}else{cout<<"No Solution"<<endl;}}#ifndef ONLINE_JUDGEfclose(stdin);#endifreturn 0;}


0 0
原创粉丝点击