Cod sursa(job #7036)

Utilizator runnaway90Oprescu Radu Constantin runnaway90 Data 21 ianuarie 2007 12:01:28
Problema Elimin Scor 0
Compilator fpc Status done
Runda preONI 2007, Runda 1, Clasa a 10-a Marime 1.75 kb
var a:array[0..200,0..150]of integer;
    f:text;
    ok:boolean;
    i,j,n,m,r,s,c,p,min,t:longint;

begin
     assign(f,'elimin.in');
     reset(f);
              read(f,n,m);
              read(f,r,c);
              for i:=1 to n do
              begin
                   s:=0;
                  for j:=1 to m do
                  begin
                      read(f,a[i,j]);
                      a[i,0]:=a[i,0]+a[i,j];
                  end;
              end;
     close(f);
     for i:=1 to m do
     for j:=1 to n do
         a[0,i]:=a[0,i]+a[i,j];
     ok:=true;p:=0;
     while ok do
     begin
          ok:=false;inc(p);
          min:=99999999;
          for i:=1 to n do
              if (a[i,0]<min)and(a[i,0]>0) then
              begin
                 min:=a[i,0];
                 t:=i;
              end;
          for i:=0 to m do
          begin
               if a[t,i]>0 then
              a[0,i]:=a[0,i]-a[t,i];
              a[t,i]:=-1;
          end;
          if p<r then
             ok:=true;
     end;
     ok:=true;p:=0;
     while ok do
     begin
          ok:=false;
          inc(p);
          min:=99999999;
          for i:=1 to m do
          if (a[0,i]<min)and(a[0,i]>0) then
          begin
               min:=a[0,i];
               t:=i;
          end;
          for i:=0 to n do
          begin
               if a[i,t]>0 then
               a[i,0]:=a[i,0]-a[i,t];
               a[i,t]:=-1;
          end;
          if p<c then
             ok:=true;
     end;
     s:=0;
     for i:=1 to n do
     for j:=1 to m do
         if a[i,j]<>-1 then
            s:=s+a[i,j];
         assign(f,'elimin.out');
         rewrite(f);

         write(f,s);
         close(f);

end.