about summary refs log tree commit diff
path: root/12/TP-HN-2009/R1/BTN.PAS
diff options
context:
space:
mode:
authorNguyễn Gia Phong <mcsinyx@disroot.org>2020-06-06 21:33:13 +0700
committerNguyễn Gia Phong <mcsinyx@disroot.org>2020-06-06 21:33:13 +0700
commit2f674dc80f0382f1c3178f435714960734dc9d3c (patch)
tree2abba7e4ec72bd16f58f7375126144d3fd9f4bca /12/TP-HN-2009/R1/BTN.PAS
parentb2d80610db6beda38573890ed169815e495bc663 (diff)
downloadcp-2f674dc80f0382f1c3178f435714960734dc9d3c.tar.gz
Reorganize stuff from secondary school
Diffstat (limited to '12/TP-HN-2009/R1/BTN.PAS')
-rw-r--r--12/TP-HN-2009/R1/BTN.PAS87
1 files changed, 0 insertions, 87 deletions
diff --git a/12/TP-HN-2009/R1/BTN.PAS b/12/TP-HN-2009/R1/BTN.PAS
deleted file mode 100644
index dbb022d..0000000
--- a/12/TP-HN-2009/R1/BTN.PAS
+++ /dev/null
@@ -1,87 +0,0 @@
-type sni = record
-  s : ansistring;
-  n : integer
-end;
-
-var
-  f : text;
-  s : ansistring;
-  op, cl : integer;
-  c : char;
-
-function cal(s : ansistring) : integer;
-  var
-    c : char;
-    tmp : integer = 0;
-  begin
-    cal := 0;
-    for c in s do
-      if c = '(' then
-        begin
-          inc(tmp);
-          if tmp > cal then
-            cal := tmp
-        end
-      else
-        begin
-          dec(tmp);
-          if tmp < 0 then exit(0)
-        end;
-    if tmp <> 0 then
-      exit(0)
-  end;
-
-function rplc(
-  s : ansistring;
-  c : char;
-  idx : integer
-) : ansistring;
-  begin
-    exit(copy(s, 1, idx - 1) + c + copy(s, idx + 1, length(s) - idx + 1))
-  end;
-
-function libtn(
-  s : ansistring;
-  op, cl, idx : integer
-) : sni;
-  var
-    i : integer;
-    v0, v1 : sni;
-  begin
-    if (op = 0) and (cl = 0) then
-      begin
-        libtn.s := s;
-        libtn.n := cal(s);
-        exit
-      end;
-    i := idx;
-    while s[i] <> '?' do
-      inc(i);
-    if op = 0 then
-      exit(libtn(rplc(s, ')', i), 0, cl - 1, i + 1));
-    if cl = 0 then
-      exit(libtn(rplc(s, '(', i), op - 1, 0, i + 1));
-    v0 := libtn(rplc(s, '(', i), op - 1, cl, i + 1);
-    v1 := libtn(rplc(s, ')', i), op, cl - 1, i + 1);
-    if v0.n > v1.n then
-      exit(v0)
-    else exit(v1)
-  end;
-
-begin
-  assign(f, 'BTN.INP');
-  reset(f);
-  read(f, s);
-  close(f);
-  op := length(s) div 2;
-  cl := length(s) div 2;
-  for c in s do
-    if c = '(' then
-      dec(op)
-    else if c = ')' then
-      dec(cl);
-  assign(f, 'BTN.OUT');
-  rewrite(f);
-  writeln(f, libtn(s, op, cl, 1).s);
-  close(f)
-end.