1. 程式人生 > >C語言最大的乘積問題

C語言最大的乘積問題

最大乘積

Time Limit: 3000ms, Memory Limit: 10000KB , Accepted: 3506, Total Submissions: 6137

Description

輸入n個元素組成的序列S,你需要找出一個乘積最大的連續子序列。如果這個最大的乘積不是正數,輸出-1表示無解。1≤n≤18,-10≤Si≤10。

Input

第1行輸入n,整數
第2行n個元素的序列S,均為整型,用空格隔開

Output

輸出最大乘積,若無解輸出-1

  • Sample Input 
    5
    2 5 -1 2 -1
  • Sample Output

    20

#include<stdio.h>
int main()
{
int n,i,j,k,sum,a[100],m=0;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
scanf("%d",&a[i]);
}
for(i=1;i<=n;i++)
{
sum=1;
k=i;
for(;k<=n;k++)
{
sum=sum*a[k];
m=sum>m?sum:m;
}
}
if(m>0)printf("%d\n",m);
else printf("-1\n");
return 0;