Cod sursa(job #324309)

Utilizator cristian3991Udroiu Constantin Cristian cristian3991 Data 15 iunie 2009 16:36:40
Problema Jocul Flip Scor 10
Compilator fpc Status done
Runda Arhiva de probleme Marime 1.23 kb
var s,m,n,i,j,ss,l,c,min,min1:longint;
    ok:boolean;
    ma:array[1..16,1..16] of longint;
    f:text;
    begin
    assign(f,'flip.in');
    reset(f);
    readln(f,n,m);
    s:=0;
    for i:=1 to n do
    begin
    for j:=1 to m do
    read(f,ma[i,j]);
    readln(f);
    end;
    ok:=true;
    while ok=true do
    begin
    min:=maxint;
    {parcurgere pentru linii}
    for i:=1 to n do
    begin
    ss:=0;
    for j:=1 to m do
    begin
    ss:=ss+ma[i,j];
    end;
    if ss<min then begin min:=ss;
                         l:=i;
                         end;
    end;
    min1:=maxint;
    {parcurgere pentru coloane}
    for j:=1 to m do
    begin
    ss:=0;
     for i:=1 to n do
      ss:=ss+ma[i,j];
    if min1>ss then begin min1:=ss;
                         c:=j;
                         end;
     end;
     if (min>=0) and (min1>=0) then ok:=false;
     if ok=false then break;
     {aplicarea jocului}
    for i:=1 to n do
    ma[i,c]:=ma[i,c]*-1;
    for j:=1 to m do
    ma[l,j]:=ma[l,j]*-1;
    end;
    {obtinerea sumei}
    for i:=1 to n do
    for j:=1 to m do
    s:=s+ma[i,j];
    close(f);
    assign(f,'flip.out');
    rewrite(f);
    write(f,s);
    close(f);
    end.