Cod sursa(job #1124954)

Utilizator paulabenbendea paula paulaben Data 26 februarie 2014 14:45:18
Problema Jocul Flip Scor 30
Compilator fpc Status done
Runda Arhiva de probleme Marime 1.34 kb
program flip;
type matrice=array[1..17,1..17]of integer;
var a:matrice;f,g:text;ss,s,i,x,j,maxim,m,n:integer;
    v:array[0..17] of integer;
{function suma(a:matrice; n,m:integer):integer;
var s:integer;
begin
s:=0;
for i:=1 to n do
 for j:=1 to m do
  s:=s+a[i,j];
suma:=s;
end;}
begin
assign(f,'flip.in');reset(f);
assign(g,'flip.out');rewrite(g);
readln(f,n,m);
for i:=1 to n  do
begin
 for j:=1 to m do
 begin
  read(f,a[i,j]);
  maxim:=maxim+a[i,j];
 end;
 readln(f);
end;
while (v[0]=0) do
begin
 j:=m;
 while v[j]=1 do
  begin
   v[j]:=0;
   j:=j-1;
  end;
 v[j]:=1;
 s:=0;
 for i:=1 to n do
 begin
 ss:=0;
 for x:=1 to m do
  begin
   if v[x]=1 then
    begin
    ss:=ss-a[i,x];
    end
    else
    begin
    ss:=ss+a[i,x];
    end;
    end;
  if ss<0 then ss:=ss*(-1);
  s:=s+ss;
  end;
 if s>maxim then maxim:=s;
 end;
 write(g,maxim);
{min2:=maxint;
for i:=1 to n do
 begin
  s1:=0;
  for j:=1 to m do
    s1:=s1+a[i,j];
  if s1<min2 then
   begin
    min2:=s1;
    p:=i;
   end;
 end;
min1:=maxint;
for j:=1 to m do
 begin
  s2:=0;
  for i:=1 to n do
   s2:=s2+a[i,j];
  if s2<min1 then
   begin
    min1:=s2;
    q:=j;
   end;
  end;
for i:=1 to m do
 a[p,i]:=a[p,i]*(-1);
for i:=1 to n do
 a[i,q]:=a[i,q]*(-1);
write(g,suma(a,n,m));}
close(f);
close(g);
end.