noip普及组复赛模拟试题7(答案)(2)

2019-01-26 13:27

Sample Input

【输入样例1】 1 7

-9 -9 8 8 1 7 -4

【输入样例2】 3 4

2 3 4 5 1 3 2 4 4 3 2 1

Sample Output

【输出样例1】 128

【输出样例2】 288 var

n,m,ans:longint;

i,j,k,min,max,tem1,tem2:longint; f:array[1..200] of longint;

p,q:array[1..200,1..200] of longint; a:array[1..200,1..200] of longint; procedure cricle; var i,j,t:longint;

temp:array[1..200,1..200] of longint; begin

for i:=1 to m do

for j:=1 to n do temp[i,j]:=a[j,m-i+1]; a:=temp;

t:=n; n:=m; m:=t; end;

procedure main; begin

fillchar(p,sizeof(p),0); fillchar(q,sizeof(q),0); for i:=1 to n do begin fillchar(f,sizeof(f),0);

max:=-9999999; min:=9999999; for j:=i to n do begin tem1:=0; tem2:=0;

for k:=1 to m do begin inc(f[k],a[j,k]); tem1:=tem1+f[k];

if tem1<0 then tem1:=0; if max0 then tem2:=0;

if min>tem2 then min:=tem2; end;

p[i,j]:=max; q[i,j]:=min; end; end;

for i:=1 to n-1 do

for j:=i to n-1 do begin

if p[i,j]*p[j+1,n]>ans then ans:=p[i,j]*p[j+1,n]; if q[i,j]*q[j+1,n]>ans then ans:=q[i,j]*q[j+1,n]; end; end; begin

readln(n,m); for i:=1 to n do

for j:=1 to m do read(a[i,j]); if n*m=2 then begin

if n=1 then writeln(a[1,1]*a[1,2]); if m=1 then writeln(a[1,1]*a[2,1]); exit; end; ans:=0; main; cricle; main;

writeln(ans); end.

输入 6 7

2 3 4 5 7 6 1 1 3 2 4 8 6 7 4 3 2 1 5 7 8 6 7 8 3 2 4 1 5 6 9 8 4 3 2

8 7 6 5 4 2 1 输出 8989 输入 4 8

2 4 9 -3 7 8 12 6 9 11 3 -5 6 8 7 4 -3 8 12 9 10 7 11 5

7 10 -9 5 -2 4 6 12 输出 8100


noip普及组复赛模拟试题7(答案)(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:青海省注册咨询工程师考试第五科考试技巧每日一讲(7月3日)

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: