var
fmin1,fmin2,fmax1,fmax2,sum:array[0..50,0..50] of longint;
a:array[0..50] of longint;
n,m,i,j,k,p,max,min:longint;
begin
readln(n,m);
for i:=1 to n do
begin
readln(a[i]);
while a[i]<0 do inc(a[i],10);
end;
fillchar(sum,sizeof(sum),0);
for i:=1 to n do
for j:=i to n do
sum[i,j]:=sum[i,j-1]+a[j];
fmax1:=sum; fmin1:=sum;
fmax2:=sum; fmin2:=sum;
if m=1 then
begin
writeln(sum[1,n]);
halt;
end;
for p:=2 to m-1 do
begin
for i:=1 to n-1 do
for j:=i+1 to n do
for k:=i+1 to j-1 do
begin
if fmax2[i,k]*sum[k+1,j]>fmax1[i,j] then
fmax1[i,j]:=fmax2[i,k]*sum[k+1,j];
if fmin2[i,k]*sum[k+1,j]<fmin1[i,j] then
fmin1[i,j]:=fmin2[i,k]*sum[k+1,j];
end;
fmax2:=fmax1; fmin2:=fmin1;
end;
max:=0; min:=maxlongint;
for i:=1 to n-m+2 do
for j:=i+m-2 to n-1 do
begin
if max<fmax1[i,j]*((sum[1,i-1]+sum[j+1,n]) mod 10) then
max:=fmax1[i,j]*((sum[1,i-1]+sum[j+1,n]) mod 10);
if min>fmin1[i,j]*((sum[1,i-1]+sum[j+1,n]) mod 10) then
min:=fmin1[i,j]*((sum[1,i-1]+sum[j+1,n]) mod 10);
end;
writeln(min);
writeln(max);
end.
状态: Unaccepted
测评机: Xeost[5]
得分: 80分
提交日期: 2010-10-6 19:10:00
有效耗时: 484毫秒
测试结果1: 通过本测试点|有效耗时156ms
测试结果2: 通过本测试点|有效耗时47ms
测试结果3: 通过本测试点|有效耗时47ms
测试结果4: 通过本测试点|有效耗时47ms
测试结果5: 输出过少|用户输出数据少于标准输出的50%[标准输出4位|选手输出1位]
测试结果6: 通过本测试点|有效耗时47ms
测试结果7: 通过本测试点|有效耗时46ms
测试结果8: 通过本测试点|有效耗时47ms
测试结果9: 通过本测试点|有效耗时47ms
测试结果10: 输出过少|用户输出数据少于标准输出的50%[标准输出4位|选手输出1位]