UVA - 11059

Problem D - Maximum Product

Time Limit: 1 second

 

 

Given a sequence of integers S = {S1, S2, ..., Sn}, you should determine what is the value of the maximum positive product involving consecutive terms of S. If you cannot find a positive sequence, you should consider 0 as the value of the maximum product.

Input

Each test case starts with 1 ≤ N ≤ 18, the number of elements in a sequence. Each element Si is an integer such that -10 ≤ Si ≤ 10. Next line will have N integers, representing the value of each element in the sequence. There is a blank line after each test case. The input is terminated by end of file (EOF).

Output

For each test case you must print the message: Case #M: The maximum product is P., where M is the number of the test case, starting from 1, and P is the value of the maximum product. After each test case you must print a blank line.

Sample Input

3
2 4 -3

5
2 5 -1 2 -1

Sample Output

Case #1: The maximum product is 8.

Case #2: The maximum product is 20.

 1 #include <iostream>
 2 #include <cstdio>
 3 #include <cstring>
 4 
 5 using namespace std;
 6 
 7 int main () {
 8     int N;
 9     int Case = 1;
10     while (cin >> N){
11         int a[20];
12         for (int i = 0;i < N;i++) {
13             cin >> a[i];
14         }
15         long long maxn = 0;
16         long long ans = 1;
17         for (int i = 0;i < N;i++) {
18             for (int j = i;j < N;j++) {
19                 ans = 1;
20                 for (int k = i;k <= j;k++) {
21                     ans *= a[k];
22                 }
23                 maxn = max (maxn,ans);
24             }
25         }
26         printf("Case #%d: The maximum product is %lld.\n\n",Case++,maxn);
27     }
28 }
View Code

 

posted @ 2014-11-26 12:56  闪光阳  阅读(417)  评论(0编辑  收藏  举报