Chủ Nhật, 28 tháng 5, 2017

Code bài BANG

const fin='bang.inp' ; fon='bang.out' ;
var n,v : longint ; a,f : array[0..1000,0..1000] of int64;

procedure nhap;
        var i,j : longint;
        begin
        readln(n);
        for i:=1 to n do
                for j:=1 to n do
                        begin
                        read(a[i,j]);
                        if a[i,j]=0 then a[i,j]:=-10000000;
                        end;
        end;

procedure xuli;
        var i,j,x1,y1,x2,y2,k: longint;max,s:int64;
        begin
        f[0,0]:=0;
        for i:=1 to n do
                for j:=1 to n do
                        f[i,j]:= f[i-1,j] + f[i,j-1] - f[i-1,j-1]+ a[i,j];
        max:=0;
        for x1:=1 to n do
                for y1:=1 to n do
                        begin
                        v:=x1;
                        if y1>x1 then v:=y1;
                        for k:=0 to n-v do
                                begin
                                x2:=x1+k;
                                y2:=y1+k;
                                s:=f[x2,y2] - f[x1-1,y2] - f[x2,y1-1] + f[x1-1,y1-1];
                                if s>max then max:=s;
                                end;
                        end;
        writeln(max);
        end;

begin
assign(input,fin);reset(input);
assign(output,fon);rewrite(output);
nhap;
xuli;
end.

Không có nhận xét nào:

Đăng nhận xét

Lưu ý: Chỉ thành viên của blog này mới được đăng nhận xét.