Cod sursa(job #18353)

Utilizator raduzerRadu Zernoveanu raduzer Data 18 februarie 2007 11:44:48
Problema Zone Scor 20
Compilator fpc Status done
Runda preONI 2007, Runda 2, Clasa a 9-a si gimnaziu Marime 2.88 kb
var a,b:array[0..600,0..600]of longint;
    c,d:array[1..16]of longint;
    n,i,j,l,k,l1,l2,c1,c2,s,q,w,x,y,z:longint;



procedure ex;
begin
     if (l1>0)and(l2>0)and(c1>0)and(c2>0) then exit;
     for i:=1 to 9 do c[i]:=d[i];
     l1:=0;
     l2:=0;
     c1:=0;
     c2:=0;
     for i:=1 to n-1 do
     begin
          for j:=1 to n-1 do
          begin
               for l:=1 to 9 do
               begin
                    if c[l]=b[i][j] then
                    begin
                         l1:=i;
                         c1:=j;
                         c[l]:=-2000000000;
                         q:=1;
                         break;
                    end;
               end;
               if q=1 then break;
          end;
          if q=1 then break;
     end;
     q:=0;
     for j:=c1+1 to n do
     begin
          for i:=1 to 9 do
          begin
               if c[i]=b[l1][j]-b[l1][c1] then
               begin
                    for k:=1 to 9 do
                    begin
                         if c[k]=b[l1][n]-b[l1][j] then
                         begin
                              q:=1;
                              c[k]:=-2000000000;
                              break;
                         end;
                    end;
                    if q=1 then
                    begin
                         c2:=j;
                         c[i]:=-2000000000;
                         break;
                    end;
               end;
          end;
          if q=1 then break;
     end;
     q:=0;
     for i:=l1+1 to n do
     begin
          for j:=1 to 9 do
          begin
               if c[j]=b[i][c1]-b[l1][c1] then
               begin
                    for k:=1 to 9 do
                    begin
                         if c[k]=b[n][c1]-b[i][c1] then
                         begin
                              q:=1;
                              c[k]:=-2000000000;
                              break;
                         end;
                    end;
                    if q=1 then
                    begin
                         l2:=i;
                         c[j]:=-2000000000;
                         break;
                    end;
               end;
          end;
          if q=1 then break;
     end;

end;




begin
     assign(input,'zone.in');
     reset(input);
     assign(output,'zone.out');
     rewrite(output);
     readln(n);
     for i:=1 to 9 do
     begin
          read(c[i]);
          d[i]:=c[i];
     end;
     for i:=1 to n do
     begin
          for j:=1 to n do
          begin
               read(a[i][j]);
               b[i][j]:=b[i][j-1]+b[i-1][j]-b[i-1][j-1]+a[i][j];
          end;
          readln;
     end;
     w:=1;
     x:=1;
     y:=1;
     z:=1;
     ex;

     writeln(l1,' ',l2,' ',c1,' ',c2);

close(output);
end.