分析
问一仅有n种面额的货币系统是否存在一个不能组合的金额,如果存在,输出最小的金额,如果不存在输出-1
。
简单的考虑一下货币,比如1、2、5,这些我们常见的小额币值能够表达我们日常所有的金额。再考虑一下,所有的金额其实都能拆分为1(比如用许多许多1块钱买辆车…),所以这道题目,只需要考虑这个系统是否提供了面额为1的货币。
代码
#include <cstdio>
int main()
{
int n, v;
bool flag = false;
scanf("%d", &n);
while (n--) {
scanf("%d", &v);
if (v == 1) flag = true;
}
printf(flag ? "-1\n" : "1\n");
}
题目
Description
A magic island Geraldion, where Gerald lives, has its own currency system. It uses banknotes of several values. But the problem is, the system is not perfect and sometimes it happens that Geraldionians cannot express a certain sum of money with any set of banknotes. Of course, they can use any number of banknotes of each value. Such sum is called unfortunate. Gerald wondered: what is the minimum unfortunate sum?
Input
The first line contains number
n(1 ≤ n ≤ 1000)
— the number of values of the banknotes that used in Geraldion.
The second line contains n distinct space-separated numbers
a1, a2, ..., an(1 ≤ ai ≤ 106)
— the values of the banknotes.
Output
Print a single line — the minimum unfortunate sum. If there are no unfortunate sums, print − 1 .
Sample
Input
5
1 2 3 4 5
Output
-1