diff options
author | Nguyễn Gia Phong <mcsinyx@disroot.org> | 2020-06-06 21:33:13 +0700 |
---|---|---|
committer | Nguyễn Gia Phong <mcsinyx@disroot.org> | 2020-06-06 21:33:13 +0700 |
commit | 2f674dc80f0382f1c3178f435714960734dc9d3c (patch) | |
tree | 2abba7e4ec72bd16f58f7375126144d3fd9f4bca /2ndary/THT/C/TP-2017/squares_brute-force.pas | |
parent | b2d80610db6beda38573890ed169815e495bc663 (diff) | |
download | cp-2f674dc80f0382f1c3178f435714960734dc9d3c.tar.gz |
Reorganize stuff from secondary school
Diffstat (limited to '2ndary/THT/C/TP-2017/squares_brute-force.pas')
-rw-r--r-- | 2ndary/THT/C/TP-2017/squares_brute-force.pas | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/2ndary/THT/C/TP-2017/squares_brute-force.pas b/2ndary/THT/C/TP-2017/squares_brute-force.pas new file mode 100644 index 0000000..0b389d9 --- /dev/null +++ b/2ndary/THT/C/TP-2017/squares_brute-force.pas @@ -0,0 +1,39 @@ +(* The method I actually used at the contest, approx 15% time-out. *) +uses math; + +var + f: text; + m, n, i, j, x, y: int16; + k: int8; + net: array[1..1000, 1..1000] of boolean; + count: int64 = 0; + +begin + assign(f, 'squares.inp'); + reset(f); + readln(f, m, n, k); + for x := 1 to m do + for y := 1 to n do + net[x][y] := true; + repeat + dec(k); + readln(f, x, y); + net[x][y] := false + until k = 0; + close(f); + + for x := 1 to m - 1 do + for y := 1 to n - 1 do + if net[x, y] then + for i := 0 to x - 1 do + for j := 1 to min(m - x, n - y - i) do + if net[x - i, y + j] and + net[x + j, y + i] and + net[x - i + j, y + i + j] then + count := count + 1; + + assign(f, 'squares.out'); + rewrite(f); + writeln(f, count); + close(f) +end. |