直接用了遍历的方法。。。
#include <iostream>
using namespace std;
int main()
{
int n;
cin >> n;
for(int i=1;i<=n;i++)
{
int t;
cin >> t;
int a[t];
for(int j=0;j<=t-1;j++)
{
cin >> a[j];
}
int maxp=a[0];
int left,right;
left=right=0;
int p=1;
for(int j=0;j<=t-1;j++)
{
for(int k=j+1;k<=t-1;k++)
{
p=1;
for(int l=j;l<=k;l++)
{
p*=a[l];
if(p>maxp)
{
maxp=p;
left=j;
right=k;
}
}
}
}
cout << "Case #" << i << ": " ;
if(maxp<=0)cout << 0 << endl;
else cout << right-left+1 << endl;
}
}