about summary refs log tree commit diff
path: root/12/TP-ThanhHoá-2009/bai5.pas
diff options
context:
space:
mode:
Diffstat (limited to '12/TP-ThanhHoá-2009/bai5.pas')
-rw-r--r--12/TP-ThanhHoá-2009/bai5.pas112
1 files changed, 0 insertions, 112 deletions
diff --git a/12/TP-ThanhHoá-2009/bai5.pas b/12/TP-ThanhHoá-2009/bai5.pas
deleted file mode 100644
index 867b9d2..0000000
--- a/12/TP-ThanhHoá-2009/bai5.pas
+++ /dev/null
@@ -1,112 +0,0 @@
-uses
-  sortnfind;
-
-var
-  f: text;
-  rect: array of boolean;
-  mem: array of intar;
-  m, n: byte;
-  tmp, i, idx0, idx1: smallint;
-
-
-function locate(x: smallint): smallint;
-  var
-    i: smallint;
-
-  begin
-    for i := 0 to length(mem) - 1 do
-      if binin(mem[i], x) then
-        exit(i)
-  end;
-
-
-procedure mv(
-  src: intar;
-  var dest: intar
-);
-
-  var
-    lendest, lensrc, i: smallint;
-
-  begin
-    lendest := length(dest);
-    lensrc := length(src);
-    setlength(dest, lendest + lensrc);
-
-    for i := 0 to lensrc - 1 do
-      dest[i + lendest] := src[i];
-
-    setlength(src, 0);
-    qsort(dest)
-  end;
-
-
-begin
-  assign(f, 'BAI5.INP');
-  reset(f);
-  readln(f, m, n);
-  setlength(rect, m * n);
-
-  for i := 0 to m * n - 1 do
-    begin
-      read(f, tmp);
-
-      if tmp = 0 then
-        rect[i] := true
-      else
-        rect[i] := false
-    end;
-  close(f);
-
-  setlength(mem, 0);
-
-  for i := 0 to m * n - 1 do
-    if rect[i] then
-      begin
-        idx0 := -1;
-        idx1 := -1;
-
-        if (i > 0) and rect[i - 1] then
-          idx0 := locate(i - 1);
-
-        if (i >= n) and rect[i - n] then
-          if idx0 = -1 then
-            idx0 := locate(i - n)
-          else
-            begin
-              tmp := locate(i - n);
-
-              if tmp < idx0 then
-                begin
-                  idx1 := idx0;
-                  idx0 := tmp
-                end
-              else if tmp > idx0 then
-                idx1 := tmp
-            end;
-
-        if idx0 + idx1 = -2 then
-          begin
-            setlength(mem, length(mem) + 1);
-            setlength(mem[length(mem) - 1], 1);
-            mem[length(mem) - 1][0] := i;
-            continue
-          end;
-
-        setlength(mem[idx0], length(mem[idx0]) + 1);
-        mem[idx0][length(mem[idx0]) - 1] := i;
-
-        if idx1 > 0 then
-          mv(mem[idx1], mem[idx0])
-      end;
-
-  tmp := 0;
-  for i := 0 to length(mem) - 1 do
-    if length(mem[i]) > tmp then
-      tmp := length(mem[i]);
-
-  assign(f, 'BAI5.OUT');
-  rewrite(f);
-  writeln(f, tmp);
-  close(f)
-end.