UVA - 11059 Maximum Product

来源:互联网 发布:us域名注册 编辑:程序博客网 时间:2024/05/01 04:35

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

32 4 -352 5 -1 2 -1

Sample Output

Case #1: The maximum product is 8.Case #2: The maximum product is 20.
#include <bits/stdc++.h>using namespace std;int num[20];long long int get_multi(int l, int r){    long long int res = 1;    for(int i = l; i <= r; i++)        res *= num[i];    return res;}int main(){#ifndef ONLINE_JUDGE    freopen("in.txt","r",stdin);    freopen("out.txt","w",stdout);#endif    int n, kase = 0;    while(memset(num, 0, sizeof(num)), scanf("%d", &n)!=EOF)    {        long long int maxnum = INT_MIN;        for(int i = 1; i <= n; i++)            scanf("%d", &num[i]);        for(int i = 1; i <= n; i++)            for(int j = i; j <= n; j++){                maxnum = max(maxnum, get_multi(i, j));            }        printf("Case #%d: The maximum product is %lld.\n\n", ++kase, maxnum <= 0 ? 0 : maxnum);    }    return 0;}


0 0
原创粉丝点击