Pagini recente » Cod sursa (job #3255017) | Cod sursa (job #1440081) | Cod sursa (job #2545021) | Cod sursa (job #2644676) | Cod sursa (job #530937)
Cod sursa(job #530937)
type tip = array[1..20,1..20] of integer;
var
a:tip;
c:char;
i,j,n,m,sum:integer;
f:text;
{------------------------------------}
function sumc(data:tip;ic:integer):integer;
var jc:integer;
begin
sumc:=0;
for jc := 1 to m do
sumc:=sumc+a[ic,jc];
{insumarea unei coloanei ic}
end;
{-------------------------}
function sumr(data:tip;jc:integer):integer;
var ic:integer;
begin
sumr:=0;
for ic:= 1 to n do
sumr:= sumr+data[ic,jc];
{insumarea randului ic}
end;
{------------------------}
procedure flipc(ic:integer);
var jc:integer;
begin
for jc:= 1 to m do
a[ic,jc]:= (-1)*a[ic,jc];
end;
{---------}
procedure flipr(jc:integer);
var ic:integer;
begin
for ic:= 1 to n do
a[ic,jc]:=(-1)*a[ic,jc];
end;
{---------}
var
ok:boolean;
AUX:INTEGER;
g:text;
{|||||||||||||||||||||||||||||
vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv}
begin
sum:=0;
writeln('vezi asta?');
assign(f,'flip');
reset(f);
read(f,m);
readln(f,n);
for j := 1 to m do
begin
for i:= 1 to n do
begin
read(f,a[i,j]);
sum:= sum+ a[i,j];
end;
readln(f);
end;
repeat
ok := true;
for i := 1 to n do
begin
aux := sumc(a,i);
if aux<0 then
begin
sum:= sum- (2*aux);
ok:=false;
flipc(i);
end;
end;
for j:= 1 to m do
begin
aux:= sumr(a,j);
if aux<0 then
begin
sum := sum- (2*aux);
ok:= false;
flipr(j);
end ;
end;
until ok;
close(f);
assign(g,'flip.out');
rewrite(g);
write(g,sum);
close(g);
end.