Cod sursa(job #345270)

Utilizator energizerBunnyCicu Mihai energizerBunny Data 2 septembrie 2009 13:52:24
Problema Fractii Scor 0
Compilator fpc Status done
Runda Arhiva de probleme Marime 1.11 kb
Program pascal;
Type
 mat = array[1..16,1..16] of longint;
var
 a: mat;
 f: text;
 m,n,i,j,k:1..16;
 spoz,sneg,s:longint;
 sem: boolean;
Begin
  assign(f,'flip.in');
  reset(f);
  read(f,n);
  readln(f,m);
  for i:= 1 to n do begin
   for j:= 1 to m do
    read(f,a[i,j]);
   readln(f);
  end;
  close(f);
  sem:=false;
while not(sem) do Begin
  sem:=true;
  for j:= 1 to m do Begin
    spoz:=0;
    sneg:=0;
    for i:= 1 to n do
     if a[i,j] > 0 then
       spoz := spoz + a[i,j]
     else sneg := sneg +a[i,j];
    if (sneg*(-1) >= spoz) then begin
     for k:= 1 to n do
       a[k,j]:=a[k,j] * (-1);
     sem:= false;
    end;
  End;

  for i:= 1 to n do Begin
    spoz := 0;
    sneg := 0;
    for j:= 1 to m do
     if a[i,j] > 0 then
      spoz := spoz + a[i,j]
     else sneg:= sneg + a[i,j];
    if (sneg*(-1) >= spoz) then begin
     for k:= 1 to m do
      a[i,k] := a[i,k] * (-1);
     sem:=false;
    end;
  End;
End; {while}

  for i:= 1 to n do
   for j:= 1 to m do
    s := s + a[i,j];
  assign(f,'flip.out');
  rewrite(f);
  write(f,s);
  close(f);
END.