专题一搜索 N - Maximum Product

  1. 题目
    Given a sequence of integers S = {S1, S2, . . . , Sn}, you should determine what is the value of themaximum 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.
  2. 思路
    嗯枚举就完了,数据量很小,只需要搜连续的就够了,全部枚举一次都不会时间超限
  3. 代码
    #include <cstdio>
    using namespace std;
    
    int a[20];
    
    int main()
    {
    	int n,q=0;
    	long long t;
    	while(scanf("%d",&n)!=EOF)
    	{
    		q++;
    		long long min=0;
    		//int flag=1;
    		for(int i=0;i<n;i++)
    		{
    			scanf("%d",&a[i]);
    		}
    		for(int i=0;i<n;i++)
    		{
    			t=1;
    			for(int j=i;j<n;j++)
    			{
    				t=t*a[j];
    				if(t>min) min=t;
    			}
    		}
    		printf("Case #%d: The maximum product is %lld.\n\n",q,min);
    	}
    	return 0;
    }
posted @ 2022-01-23 23:06  Benincasa  阅读(23)  评论(0编辑  收藏  举报