/*
输出连续乘积的最大值,如果最大值是负数则输出0
本题因为输入的数据不大,所以可以用暴力进行求解
*/
#include <iostream>
#include <stdio.h>
#include <algorithm>
using namespace std;
long long arge[20];//注意要开到long long
int main(void)
{
int n;
int k = 0;
while (scanf("%d", &n) != EOF)
{
long long max_num = 0;
//if (k++)
//putchar('\n');
//UVa的格式总是让我捉摸不透,这里不需要这样,就是直接进行两次换行
k++;
for (int i = 0; i < n; i++)
scanf("%lld", &arge[i]);
for (int i = 0; i < n; i++)//这里注意不是i < n - 1因为它可能只有一个数,也就是重合的情况
for (int j = i; j < n; j++)//这里的不是 j = i+1理由同上
{
long long temp = 1;
for (int k = i; k <= j; k++)
temp *= arge[k];//以i为起点j为终点进行连乘
if (temp > max_num)
max_num = temp;
}
printf("Case #%d: The maximum product is %lld.\n\n", k, max_num);//这里直接就是两个换行,最后一行也是两个换行
}
return 0;
}
08-08