Currency System in Geraldion

题目链接http://acm.hust.edu.cn/vjudge/problem/visitOriginUrl.action?id=201542

题意

        输入一个数n,表示几种不同面值的纸币。输入那组纸币的面值,问不能组成的价值中最小的是多少,如果所有价值都可以组成,则输出-1.

       案例:

       Inpu

       5

      1 2 3 4 5

      Outpu
     -1
思路分析:   
当有面值为1的纸币时,你就会发现可以用1组成任意价值的钱。所以在1存在时直接输出-1。
当没有面值为1的纸币时,任何面值都无法组成1.
所以直接判断是否有1.
源代码如下:
 1 #include<iostream>
 2 #include<algorithm>
 3 #define max 1000
 4 using namespace std;
 5 int main()
 6 {
 7     int n;
 8     cin>>n;
 9     int a[max];
10     for(int i=0;i<n;i++)
11         cin>>a[i];
12     sort(a,a+n);
13     if(a[0]==1)
14         cout<<"-1"<<endl;
15     else
16         cout<<"1"<<endl;
17     return 0;
18 }


 
原文地址:https://www.cnblogs.com/q-c-y/p/4678511.html