Time Limit: 2 sec / Memory Limit: 1024 MB
配点 : 200 点
問題文
N 個の整数 A_1,...,A_N が与えられます。
A_1 \times ... \times A_N を求めてください。
ただし、結果が 10^{18} を超える場合は、代わりに -1
を出力してください。
制約
- 2 \leq N \leq 10^5
- 0 \leq A_i \leq 10^{18}
- 入力は全て整数である。
入力
入力は以下の形式で標準入力から与えられる。
N A_1 ... A_N
出力
値 A_1 \times ... \times A_N を整数として出力せよ。ただし、この値が 10^{18} を超える場合は、代わりに -1
を出力せよ。
入力例 1
2 1000000000 1000000000
出力例 1
1000000000000000000
1000000000 \times 1000000000 = 1000000000000000000 です。
入力例 2
3 101 9901 999999000001
出力例 2
-1
101 \times 9901 \times 999999000001 = 1000000000000000001 ですが、これは 10^{18} を超えるので、代わりに -1
を出力します。
入力例 3
31 4 1 5 9 2 6 5 3 5 8 9 7 9 3 2 3 8 4 6 2 6 4 3 3 8 3 2 7 9 5 0
出力例 3
0
Score : 200 points
Problem Statement
Given N integers A_1, ..., A_N, compute A_1 \times ... \times A_N.
However, if the result exceeds 10^{18}, print -1
instead.
Constraints
- 2 \leq N \leq 10^5
- 0 \leq A_i \leq 10^{18}
- All values in input are integers.
Input
Input is given from Standard Input in the following format:
N A_1 ... A_N
Output
Print the value A_1 \times ... \times A_N as an integer, or -1
if the value exceeds 10^{18}.
Sample Input 1
2 1000000000 1000000000
Sample Output 1
1000000000000000000
We have 1000000000 \times 1000000000 = 1000000000000000000.
Sample Input 2
3 101 9901 999999000001
Sample Output 2
-1
We have 101 \times 9901 \times 999999000001 = 1000000000000000001, which exceeds 10^{18}, so we should print -1
instead.
Sample Input 3
31 4 1 5 9 2 6 5 3 5 8 9 7 9 3 2 3 8 4 6 2 6 4 3 3 8 3 2 7 9 5 0
Sample Output 3
0