#include <iostream>
#include <math.h>
#include<algorithm>
using namespace std;
typedef struct Node
{
int data;
int pos;
}Node;
int main()
{
Node D[11000];
int count = 1;
char ch;
int in;
int n = 1;
int first, last;
long long res = -999999999;
while (scanf("%d%c", &in, &ch) != EOF)
{
D[n].pos = n;
D[n++].data = in;//D[1] --- D[n-1]有数据。。
if (ch == '\n')
{
int bit_in_latex = 1;
while(bit_in_latex <= n-1)
{
for (int pos_start = 1; pos_start <= n - bit_in_latex; pos_start++)
{
long long tem_res = 1;
for (int i = pos_start; i <= pos_start + bit_in_latex - 1; i++)
{
tem_res *= D[i].data;
}
if (res < tem_res)
{
res = tem_res;
first = pos_start;
last = pos_start + bit_in_latex - 1;
}
}
bit_in_latex++;
}
//一行结束,处理一行数据。。。
cout << "Case " << count++ << ": " << res << " " << D[first].pos - 1 << "-" << D[last].pos - 1 << endl;
n = 1;//恢复n,重新处理新一行。。。
res = -999999999;
}
}
}
计算思维<连乘>
于 2023-03-18 13:01:46 首次发布