From 2f674dc80f0382f1c3178f435714960734dc9d3c Mon Sep 17 00:00:00 2001 From: Nguyễn Gia Phong Date: Sat, 6 Jun 2020 21:33:13 +0700 Subject: Reorganize stuff from secondary school --- 12/TP-HN-2009/R1/BTN.PAS | 87 ------------------------------------------------ 1 file changed, 87 deletions(-) delete mode 100644 12/TP-HN-2009/R1/BTN.PAS (limited to '12/TP-HN-2009/R1/BTN.PAS') 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. -- cgit 1.4.1