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 --- tht/C/TP-2016/buy.pas | 47 ------------------------------ tht/C/TP-2016/play.pas | 77 -------------------------------------------------- tht/C/TP-2016/set.pas | 24 ---------------- 3 files changed, 148 deletions(-) delete mode 100644 tht/C/TP-2016/buy.pas delete mode 100644 tht/C/TP-2016/play.pas delete mode 100644 tht/C/TP-2016/set.pas (limited to 'tht/C/TP-2016') diff --git a/tht/C/TP-2016/buy.pas b/tht/C/TP-2016/buy.pas deleted file mode 100644 index acbd1d3..0000000 --- a/tht/C/TP-2016/buy.pas +++ /dev/null @@ -1,47 +0,0 @@ -(* File name are supposed to be in upper case, but lower case names look more *mordern*. - * `buy.pas' run first, read input from `buy.inp', write to `buy.out' - * `set.pas' run next, read from `set.inp', write to `set.out' - * `play.pas' run last, read from `map.inp', write to `decision.out' - * (LMAO dunno how to sort files in Gist) - *) - -var - f : text; - a : array[1..10] of qword; - idx : array[1..10] of shortint = (1, 2, 3, 4, 5, 6, 7, 8, 9, 10); - out : array[1..10] of shortint = (0, 0, 0, 0, 0, 0, 0, 0, 0, 0); - i, j, smalltmp : shortint; - bigtmp : qword; - -begin - assign(f, 'buy.inp'); - reset(f); - for i := 1 to 10 do - read(f, a[i]); - close(f); - for i := 1 to 9 do - for j := i + 1 to 10 do - if a[i] > a[j] then {should use `>=' cuz the later tanks are usually better} - begin - smalltmp := idx[i]; - idx[i] := idx[j]; - idx[j] := smalltmp; - bigtmp := a[i]; - a[i] := a[j]; - a[j] := bigtmp - end; - bigtmp := 100; - for i := 1 to 8 do {capable of buying 10, but dat gon' make `set.pas' complicated} - if a[i] > bigtmp then - break - else - begin - dec(bigtmp, a[i]); - out[idx[i]] := 1 - end; - assign(f, 'buy.out'); - rewrite(f); - for i := 1 to 10 do - writeln(f, out[i]); - close(f) -end. \ No newline at end of file diff --git a/tht/C/TP-2016/play.pas b/tht/C/TP-2016/play.pas deleted file mode 100644 index 8ae0d7c..0000000 --- a/tht/C/TP-2016/play.pas +++ /dev/null @@ -1,77 +0,0 @@ -type - tank = record - a, b, c, x, y : shortint - end; - tanklist = array[1..10] of tank; - out = record - x, y, u, v : shortint - end; - -var - f : text; - m, n, id, i, j, p : shortint; - t1, t2, ttmp : tanklist; - o : out; - -function shootable(tank0, tank1 : tank) : boolean; - begin - exit(abs(tank0.x - tank1.x) + abs(tank0.y - tank1.y) <= tank0.c) - end; - -{This function should also care about the target's HP, but never mind LOL} -function damage(tank0 : tank) : shortint; - var - tmp : shortint; - begin - tmp := tank0.a * tank0.b; - if tmp mod 10 = 0 then - exit(tmp div 10); - exit(tmp div 10 + 1) - end; - -begin - assign(f, 'map.inp'); - reset(f); - readln(f, m, n, id); - for i := 1 to m do - readln(f, t1[i].a, t1[i].b, t1[i].c, t1[i].x, t1[i].y); - for i := 1 to n do - readln(f, t2[i].a, t2[i].b, t2[i].c, t2[i].x, t2[i].y); - close(f); - if id = 2 then - begin - ttmp := t1; - t1 := t2; - t2 := ttmp; - i := m; - m := n; - n := i - end; - p := 0; - o.x := 0; - for i := 1 to m do - for j := 1 to n do - if shootable(t1[i], t2[j]) and (damage(t1[i]) > p) then - begin - p := damage(t1[i]); - o.x := t1[i].x; - o.y := t1[i].y; - o.u := t2[j].x; - o.v := t2[j].y - end; - assign(f, 'decision.out'); - rewrite(f); - if o.x > 0 then - writeln(f, '2 ', o.x, ' ', o.y, ' ', o.u, ' ', o.v) - else - begin - randomize; - i := random(m) + 1; - write(f, '2 ', t1[i].x, ' ', t1[i].y, ' '); - if id = 1 then - writeln(f, random(4) + 5, ' ', random(4) + 5) - else - writeln(f, random(4) + 1, ' ', random(4) + 1) - end; - close(f) -end. \ No newline at end of file diff --git a/tht/C/TP-2016/set.pas b/tht/C/TP-2016/set.pas deleted file mode 100644 index c36dc23..0000000 --- a/tht/C/TP-2016/set.pas +++ /dev/null @@ -1,24 +0,0 @@ -var - f : text; - m, n, id : shortint; - {This, because random failed on Windows, may because of not having /dev/urandom} - out : array[1..8] of shortint = (5, 1, 3, 7, 2, 6, 4, 8); - -begin - assign(f, 'set.inp'); - reset(f); - readln(f, m, n, id); - close(f); - if id = 2 then - begin - m := n; - n := 5 - end - else - n := 4; - assign(f, 'set.out'); - rewrite(f); - for id := 1 to m do - writeln(f, n, ' ', out[id]); - close(f) -end. \ No newline at end of file -- cgit 1.4.1