about summary refs log tree commit diff
path: root/tht/C/TP-2016
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 /tht/C/TP-2016
parentb2d80610db6beda38573890ed169815e495bc663 (diff)
downloadcp-2f674dc80f0382f1c3178f435714960734dc9d3c.tar.gz
Reorganize stuff from secondary school
Diffstat (limited to 'tht/C/TP-2016')
-rw-r--r--tht/C/TP-2016/buy.pas47
-rw-r--r--tht/C/TP-2016/play.pas77
-rw-r--r--tht/C/TP-2016/set.pas24
3 files changed, 0 insertions, 148 deletions
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