题意:有一行整数,求子序列的最大乘积。
思路:枚举首位和末位。
代码:
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int main() {
int T=0;
int n;
while(scanf("%d",&n)==1) {
int a[20]= {0};
for(int i=1; i<=n; i++) {
scanf("%d",&a[i]);
}
long long sum=0;
for(int i=1; i<=n; i++) {
for(int j=i; j<=n; j++) {
long long s=1;
for(int k=i; k<=j; k++) {
s*=a[k];
}
sum=max(sum,s);
}
}
printf("Case #%d: The maximum product is %lld.\n\n",++T,sum);
}
return 0;
}