题目链接: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 }