Cod sursa(job #19540)

Utilizator raduzerRadu Zernoveanu raduzer Data 19 februarie 2007 18:56:30
Problema Elimin Scor 0
Compilator fpc Status done
Runda Arhiva de probleme Marime 1.76 kb
var a:array[0..1000,0..1000]of longint;
    b,c:array[1..1000]of longint;
    n,m,i,j,s,x,y,min:longint;
begin
     assign(input,'elimin.in');
     reset(input);
     assign(output,'elimin.out');
     rewrite(output);
     readln(n,m,x,y);
     for i:=1 to n do
     begin
          s:=0;
          for j:=1 to m do
          begin
               read(a[i][j]);
               s:=s+a[i][j];
          end;
          readln;
          a[i][0]:=s;
     end;


     for i:=1 to x do
     begin
          min:=2000000000;
          for j:=1 to n do
          begin
               if (a[j][0]<min)and(b[j]=0) then min:=a[j][0];
          end;

          for j:=1 to n do
               if (a[j][0]=min)and(b[j]=0) then
               begin
                    b[j]:=1;
                    break;
               end;
     end;
     for j:=1 to m do
     begin
          s:=0;
          for i:=1 to n do
               if b[i]=0 then s:=s+a[i][j];
          a[0][j]:=s;
     end;
     for i:=1 to y do
     begin
          min:=2000000000;
          for j:=1 to n do
          begin
               if (a[0][j]<min)and(c[j]=0) then min:=a[0][j];
          end;

          for j:=1 to n do
               if (a[0][j]=min)and(c[j]=0) then
               begin
                    c[j]:=1;
                    break;
               end;
     end;
     s:=0;
     for i:=1 to n do
          if b[i]=0 then s:=s+a[i][0];
     for j:=1 to m do
          if c[j]=1 then s:=s-a[0][j];
     {for i:=1 to n do
     begin
          if b[i]=1 then
          begin
               for j:=1 to m do
               begin
                    if c[j]=1 then s:=s+a[i][j];
               end;
          end;
     end;}
     writeln(s);
close(output);
end.