ens-ulm-1-2015

google hashcode 2015 source for team ens-ulm-1
git clone https://a3nm.net/git/ens-ulm-1-2015/
Log | Files | Refs

commit 4de2d47fd950d994bc853c55284e2890610037af
parent fc9aa0596af5e9ad0884b104877453f482df7d12
Author: Antoine Amarilli <a3nm@a3nm.net>
Date:   Fri, 27 Mar 2015 21:02:21 +0100

split

Diffstat:
testing/a3nm/main.cpp | 63++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------
testing/a3nm/test_round.in | 181+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 237 insertions(+), 7 deletions(-)

diff --git a/testing/a3nm/main.cpp b/testing/a3nm/main.cpp @@ -6,16 +6,65 @@ using namespace std; -#define MAXN 1002 +#define MAXN 200 + +int R, C, H, S; +char pizz[MAXN][MAXN]; // row, col + +vector<int> size; +vector<vector<int> > G; +vector<int> r1; +vector<int> c1; +vector<int> r2; +vector<int> c2; int main(int argc, char **argv) { - scanf("%d", &R); - scanf("%d", &S); - scanf("%d", &U); - scanf("%d", &P); - scanf("%d", &M); + scanf("%d%d%d%d", &R, &C, &H, &S); + + for (int i = 0; i < R; i++) + scanf("%s", pizz[i]); + + for (int r = 0; r < R; r++) + for (int c = 0; c < C; c++) + for (int w = 1; w <= S; w++) + for (int h = 1; h <= S/w; h++) { + if (c + w >= C || r + h >= C) + continue; // out of bounds + if (w * h > S) + continue; // too big + // count + int nham = 0; + for (int dr = 0; dr < h; dr++) + for (int dc = 0; dc < w; dc++) + nham += (pizz[r + dr][c + dc] == 'H' ? 1 : 0); + if (nham < H) + continue; // not enough ham + vector<int> nv; + G.push_back(nv); + r1.push_back(r); + r2.push_back(r + h); + c1.push_back(c); + c2.push_back(c + w); + size.push_back(h * w); + } + + // compute adj + for (unsigned int i = 0; i < G.size(); i++) { + G[i].push_back(i); + for (unsigned int j = i+1; j < G.size(); j++) { + if (r2[i] <= r1[j] || r1[i] >= r2[j] + || c2[i] <= c1[j] || c1[i] >= c2[j]) + continue; // not overlap + G[i].push_back(j); + G[j].push_back(i); + } + } - // TODO + // output + for (unsigned i = 0; i < G.size(); i++) { + printf("slice %d: %d %d - %d %d: size %d\n", i, r1[i], c1[i], r2[i], c2[i], + size[i]); + } return 0; } diff --git a/testing/a3nm/test_round.in b/testing/a3nm/test_round.in @@ -0,0 +1,181 @@ +180 60 3 12 +THTHTTTHTHHTHHTTHTTHTTTHTTHHTTTTTTTTTTTTTHHTHHHTTTTHTTTTHTHT +TTTTTTHHTTHTTTTTTTTHTTTTTHTTHHHTTTHTTTTTHTTTTTHTTTTTTHTTTTTH +TTTTHTHTTTTHTTHTHTTHTTTTTHTTHTTTTTHHTTHHHTHTTHHTHHTTTTTHHTTT +TTTHTTTHHTTTHTTTTHTTTTTHTHTHTTTTTTTTTTHTTTTTHTTTHTHHTTHHTHTT +TTTTHTHTTTTTHTTTHHTTTTTHTTTTTHTTTTHHHTTTTHTTTTTHTTHTTTTTTHHT +TTTTHHTTTTTHHHTTTTHTTTTTHTTTTTTTTHTTHTTTTHHHTTTTTTTTTHTHTTHT +TTTTTTTTHTTTTTTHTTTTTTTTTTHTTTTTTTHTTTTTTHTTTHHTTTTTTHHHHTTH +TTHTTHTHTTHTHTTHHTTTTTTTTTTTTTTTTTHTTTTTHTTTTHHTTHTTTHTTTTTT +THTTTTTTTTHHTHTTTHTHTHTTHTHTHTHTTTTTTHHTTTTTTTTHHHHTTHTTHTTH +TTHHTTTTTHTTHTTTHTTTTTTTTTHTTTTTTTTTTTTTTTTHTHTTTHTHHTTTTTHT +HTTTTTTTHHTTTTTTTTTTTHHHTTHHTTTTTHHHHHTTTTTHTTTTTTHHTTTTHTHH +TTTHTTTHTTTTTTTTTTHHTHHHHTTTHTTTTTTTTTTTTTTHHTTTTHTTTTTHHTTT +HTTTTTTTHTTTTHTTTHTTTTTTTTTTTTTTTTTTTTHTTTTHTTTTHTTHHTTHTTTH +TTTTTTTHTTTTTTTTTTTTTTTTTHTTTTTTHTTHTHTTTTTTTTHTTTTTTTTTTHTT +TTTTTTTTTTTHHTTTTTHTTTTTHTTTHTTTHHTTHTHTTTHTTTHTTTTTTTHTTHTT +TTTTTTTTHTTTTTTTTTTTTTTTTTTTTHTTHHTTTTTTTTTTTHTHTTTTTTTTHTTT +TTTTHHHTTTHHTTTTHTTTHTHTTTTTTHTHTTTHTTTTHTTTTTHHTTTTTHTHHTHT +HHTTHTHTHHTHTHHTHTHHTTTTTTHTTHTTTTTHTTTTTHHTHTTTTTTTTHTTTTTH +THTTTHTTTHTHTHHTTTTTTHTTTTTTTTTHTHHTTTTTTTTTTHTTTHTTTHTTTHTH +THTTTTTTHHHTTTTTTTTHTTTTTHTTHTHHTTHTHTTTTTHTHHTTTTTTHHTTTTTH +THTTTTTTHTHTTTTTTHHHTTTHTTTTTTTTTTTHHTTTHTTTHTHTTTTTTTTTTTTT +HHHTTTTHHTTTHTTTTTTTHHTTTTTTTTHTTTTTTTTTTTTTTTTTTTHHTTHHHTHT +TTHTTHTHTTTHTTTHTTTTTTTTTTTTTTTTTTTHTTTTHTTTTTTHTTHTTHHTHTTH +TTTTHTTTHTTHHTTTTTHTTHTTTHTTHTHHTTHTTHTHTTTTTTTTTHTTTTTTTHTT +HTTTTTHTTTHHHTTTTTTHTTTTHTTTTTTTTTTTTHTTTTHTTTTTTHTTTTTTHTTT +TTHTTHHTTTTTTTTTTTTTHHTTTTTTTTTTTHTTTTHTTTTHTTTTTTTTHHHTHTTT +TTHTTTTTTHTTTTTTTTHTTTHHHHTTTTTTTTTHTTTHTHTTTTTTHHTTTTTTTTTT +TTTTHHTTHTTTTTTHTTTTTHHTTTHTHTTTTTTTTHTTTHTHTTTTTTTTTTTTTHTH +TTTTTHTTTTTTHTTHHTTTTTTTHTTTTTTTTTTTTTTTTHTTTTTTTHTTTHTHTHHT +HTTTTTTHHHTTTTHTTTTTTTTHHTHTTTHTTTTTTHTTTTTTTTTTTTTHTTTHTTHT +TTHTTHTHTTTTTTHTTTTHTTTTTHTHTTTTTTTTHTHTTTTTTTTHHHTTHTTTTHTT +TTHTHHTHTHTTTTHTTHHTTTTTTHTTTHHHTTTTTTTHHTTHTTHTHTTTHTTHHTHT +TTTTHTTTTTTTHTHTTHTHTTTTTTTTTTTTTTTTHTTTHHHTTTTTHTTTTHTTTTHH +HHTTHTTHHTHTTTTTTTTTHTHTHTTTTTTTTTTTTHTTTTTTTTTTTHHHTTTHTHTT +TTHTTTTTTTHTTHTTHTHTTTTTTTTTHTTTTTTTHHTTTTHTTTTTTTTTTTHTHTTT +TTHHTTTTTTHTHTTTTTTTHTHTTTHTTTTHHHHTTTTTTTTHTTTTTHTTHHHTTTTT +HTHHTTTHHTTTHTTTTTTTHHHTTTTTHTTTTHTTTTTTTHTTTTTTTTHTTTHHTTTT +HHTTTHHTTTHTHTTTTTHTTTTHTHTTHTTTHTHTTHHTTTTTTTTTTHTTHTTTTTTT +HTTTHTTTTTTTTTTTTTTTTHTTTHTTTTTTTTTTTTHTTTTHTTTTTTHTTTTTTTTT +TTHHTTHTHTTHTTTTTTTHTTTHTHHHTTHTHTTHTHTTTHTTHHTHTTTTTTTTTTTT +TTTTHHHTHTTTHTHTTTTTTHTTHTHHTTTTTTTTHHTTTTHTTTTHHTTTTHTTTHTT +TTTTTTTTHTTTTTHHHHHTTTTTTTTTTHTTTTTHTHTTTTTTTTTTTHTTTTTTHTTT +TTTHTHTHTTTTTTTTHHTTHTTHTHTHTHTTTTTTHTTTHTTHTHHTHTTTTHHTTHTT +HTTHTHTHTTTTHTTTHHTTTTTHTHTTTTTTTTTTTTHTTTHTTTTTTHTTTTTTTHHT +HHTTTTTTHTTTTTHTTTTTTHTTTHHTTTTTTHTTHTTTTHHTTTTHTTHTTHTTTTTT +HTTHTHTHTTHTTTTTTTTTTHTTTHTTTHTTTTTHHTTTTTTTHTTHHTHTTTTHTTTH +THTHTTHTTTTTTHHHTHTTTHTTTTTTTHHTTHHTTTTHTTHHTTTHTTHHTTTTTHTT +THTTHHTTHTTTTTTTHHTTHTTTHTHTTTHTHHHTTHTHTTTHTHHTTTTTTTTTTTTT +HTHTTHTTTTTHTTTTHTHTTTTTHTTTTHTTTTHTTTTTHHHTHTHHTTTTHTTTTTTT +TTHTHHTTTTHTTTTHTHTTHTTTTTTHTTTHTTHTHTHTHTTTTTHHTHHTTTTTTTHT +TTTHHTTTTHHTTTTHTTTHTHTHHHHTTTTTHHTTHTTTTTHHHTHTTTTTHTHTTTTT +HTHTTHTTTTTTTTTTTTTHTTTTTTTHTHTTTHTTTTTTTTTHTTTTTTTTTTTHTTTT +THTTTTTTTHTHTTHTTHTTTHTTTTTHTHTTTTTTHHTTTTTTHTTHTTHHTTHTTTTT +TTHHTTHTTTHTTTTTHTTTTTTTHTTHTTTHTTTTTTTTTTTTTHTTTTTTTHHTTTTT +TTHTTTTTTTTTTTTTHTTHTHTTTTTTTTHHHTTTHTTHTTTTTTTTTTTTHTTTTTHT +HHTTTTTTTTTHTHTTHTTTHTTTTTHHTHTTHTTHTTHTTHTTTTTTTTTTTHTTTHTH +TTHTTHTTTHTTTHTTTTTHTTTTTTTHTHTHHHHHTTHTTHTHTTHTTTTHHTTHTHTT +THHHTTTTHTHTTHTTTTHTHTTTTTTTTHTHTHTTTTHTTHTTTHTHTHTTTTTTTTTT +TTHTHTTTTTTHTHTTTHTHTHHTTHTTTTTHTTHTTHHTTTTHTTTHHTTTTTTHTHTT +TTTTHHHTTHTHTTTTTHTTTTTTTTHTTHTTTTTHTTHTTTTTTTTTTTTHTTTTTTTT +THTTTTTTTTTTHTTTTTTTTTTTHHTHTHTTTTTTHTHTTTTTHTTTTTTTTTTHTTTT +TTTTTTTTTTHTHHTTTTHTTTTHHTHTTTTTTTTHHHTTTHHHTTHTTTTTHTTTTTTT +TTTTTTTTTTTHTHTTHTTHHTTTTHTTTTTTTHTTHHTTTHTTTTHTTTTTTTHTHTTH +TTTTTTHTTTTHTTTTTTTTHHTTTTTTTTTTHHTHHTTTTTTTTHHTTTHTHTTTTTTT +TTTTHHHTTTHTTTTTTHTTTHTTTHHHTHTTTTTTTTTTHTTTTTTTTTTTHTTHTTTT +TTHTHTHHTTTTHTTTTTTTTHTTTTTTTTTTTTTTHHHTHHTTHHTTTTHHTHHTHTHT +HTHTTTHTTTHTTTHTTTTHTTTTTTHTHHTTTHHTTHTTHTHTTTTTTTHTHTTTTTTT +HHTHTTTTHTTTHHTTTTHTTTTTTTTTTTTTTTTTTTTTTTHHTTTTTHTHHHTTHHHH +TTTTTTTTTTHTTTHTTHHHHHHTTTTTTTHHTTTTTTTHTTTTHHTTTTTTTTTTTTTT +TTHHHTTTHTTTHTHHTTHTTTTTTTTTHTTHHHTHHTTTTTTHTTTTTTTTTTHTHTTT +TTTHTTTTHHTTTTTHTTTTHTTTTHHTHHTHTTHTHTHTTTTTTTTTTTHTTTTTTTTT +HHTTHTTHTTTTTTTTTHHTTTTTHHHTTTTTTTTTTTHHTTTTHHHHTTHTTHTHTTTH +TTHTHTTTTTTTTTTHTTTTTTTTTTTTTTHTTTTHTTTHTTHHTTTTHTTTTTHTTTTT +TTTTHTTTTTHHHTHHTTTHHTTTTTTTTTTHTHTHTTTHTHTTTHTTTTTTTTTHTTTT +HTTHHTTHTHTHHTTTTHHHTTTTHTTTHHTTTTTHTTHTTTTTHHTTTTTTHHTTTHTT +HHTTHTTTTTTTTTTHTHTHTHTHTTTTTTTTHTHTTHTHTTTTTTTHHTTTHTTHTHTH +TTHTTTTTHHTTHTTTTTTTTTTTTHTTTTTTTTTTTTTHTHTTTTTTHHTHTTHTHTTT +TTHTTTTTTTTHHTTTTTTHTTHTTTHTHTHHTTTTTHTTHHTHTHTTHHTTTHTTHHTT +THTTTTTHTTTTTHHTHTTTHHTTTTHTHTHHTHTTTTHTHTTHHTTTHTHTTTTTHTTH +TTHTTTHTTTHHTTTHTTTHTTTTTTTHTTHTTHTTTTHHHTTTTHHTTTTTTHTTHTTT +TTHTTTTTTTTTTTTTHHTTTTHHTTTTTTTTTTHHHTHTTTTTHTTTTTTHTHTTTTTT +TTTTTTHTTTTTTTHTTTTTTTHTHTTTHTTTHTTHTTHTTTTTTHHTTTTTTTTTTTTT +HTHTTTTTTHHHTTTTTHTHTTTHTHTTTTHHTHTTTTTHTHTTTTTHTTTHTTTHTTTH +TTTTTTHTTTTTTTTTTTTTHTTTTHTTTHHTHTTTTTTTHHTTTTTHTTTTHHTTTTTT +TTTTTTTTTTTTTHTTTTTTHTTTTTTTTTTHTTHTTHTHTTTTHTTHTTTTHTTTTHTT +TTHTTTHTHTTTTTTTHTTTHHTHTTHTTHTTHHTTTHTTHHTHTTTTTTTTTTTTTHTT +TTTTTHHTTTTTTTTTHTTTHTTHHTTTTTTTTTTTTTTTTTTTHTHTTTTTTTHTHHTT +TTTHTTTTHHHTTTHTTTTTTTTTHHTTHTTTHTTTTTHTTTTTTTTHTTTHTTHHHTTT +THTTTTTTHTTTTHTTTHTTTTTTTHTTHTTTTTHTHTTTHTTTHTTTTTTTTTTHTTTT +HTHHTTTTHTTTHTTHHHTHTTTTTTTTHHTHTTTHTTHTTTTHHTTTTTTTTHTHTTTT +THTTTTTTTTHTTTTTTHTTHTTTHHHTHTHHHTTTTTTHTHTTTTTTTTTTTTTTTTHH +TTTHTTTTTTHTHTHTTTHHTTTTHTTTTTTTTTTTTTTTHTTTTTTTTTTHTTHTTTHH +THTTTTHTTHHTTTHTTTTTTHHTHHTTTTTHTTHHTTTHTHHHTTTHTTHTTHTTTTTT +TTHTTTTTHHTTTTTHHTTTHTHHHTTTTTTHTTTTTHHTTTTTHHHTHTTTHTTTHTTT +THTHTTTTTTHTTHTTHTTTTHTTTTHTTTHTTTHTTTHTTTHHTHHTTHTTTTTTHTTH +TTTTTTTTHTTTTHTHTHTTHTTTTTHTHTTHTTHTTTTTHTTTTTTTTTHTTHTTTTTT +HTTHTTTHTTTHTHTHTHHTTTTHTHTTTTHTTTHTTTTTTTTTHTTHTTTHTTTTTTTT +THTTTTHTHTTTTTTTTTTTHTHTTTTHTTHTTTTTTTHHHTHTHTHTTTTHTTTTHTTH +TTTTTTTTTHTTTTTTHTTTTTHHTTHTTHTTTHTHTTTTTHTTTTTTTHTTTTTTTTTH +THHTTTHTTHTTTTTTHHTTHTTTTTHHTTTTTTTTTHHTTHTTTTTTTHTTTHHTTHHT +TTTTTTTTHHTTTTTTTTHTTHTTTTTHHHHTTTTTTTHTHTTTTTTTTTTTHTHTHHHH +HTTHTTHHTTHHTHTTTTHTHTHTTTTHTTHTHTHHHTTTTHHTTTTTTHTTHHHTHHHT +TTHTHTTTTTTTTHHTTTHTTHTTHHTTHTTHTTTTHTTTTTTTTTTTTTTTHTTTHHHH +TTTTHTHHTTTHTTTTTTTHTTTTTTHTTTTTHTTHTTTTTTTTTTTTTTHHTTTHTTHT +TTTHTTTHTTHTTTTTTTTTTTTTHTTTTTTTTTTTTTTHTTHTHTHTHTTHTTTTTTHT +TTTHHTTTHTTTTTTTTTTTTHHTTTTTHHTTTTTTHHHTTTTTHHHTTTHTTTHTHTTT +TTTHTTHHTTTTTTTTHHTTTTTHTHHTTTTTTTTTTTTTTTTHTTTTTTTHTTTTTHTT +TTTTTHTHHTTTTTTHTTTTTTTTTTTTTTTTTHHTTTHTTTHHTTTTTTTTTTTTTTHT +HTTTHTTTTTTHTHTTTHTTHTTTTTHTHTTTTHTTTTTTTHTTTTTTTHHTTTTTTTHH +THTTTTTTHTTTTTTTTTTTTHTTHHHHTTTTTTTTTTTTTTHTTTHHHHTTTTTHTTTT +TTHHTHHTTTTTTTTTHTTTHTTTTTTHHTTTTTHTTTTTTTTHHTTHHTTTHTTHTHTT +TTHTTTTTHTTTTTTTTTTTTTHTTHTHTTTTTTTHHTTTTHHHHTHTTTTHTHTHHTHT +TTTTTTTTHHTTTHTHHHTTTTTTTTTTTTTHHHHTTHTTTTTHTTTHHHTTTTTHTTHH +TTTTTTTTTTTTTTTTTTTHTTTTTTTHTHTHHTTTTTHTTTTTTTTTTTTTHHTHTTTH +HHTTHTTHHTTHHTTTHTTHTTTTTTTTHHTTTTHHTTTHTTTTHTTHTTTTHTTTHTTT +THTTHTTTTTTTHHHTTHTTHHTTTTHTTTTTTTTTTTHTTTTTHTTTTTTTHTHTTTHT +THTTTHHTTHTTTHHTTTHTHTTTTTTTTTTTTTTTTTTHTTTTHTTHHTTTTTTTTTTT +TTTTTHHTHTTHHTTTTTTTHTHHTTTTTHTHTTHTTHTTTTTTTTTTTTTTTTTTTTHT +TTTTTTTTTTTHTHTTHTHTTHTHHTHTTTTTTHTHTTTTTHHHHTHTTHTTHHTTTTTT +HHTTTTTHHTTTTHTTTTHTTTTHTHTTTTTTTTHTTTTHTTTTTTTTTHTTTTHHTTTT +TTTTTTTHTTTTHTTHTTTTTTTTTTHHTTTTTTTHTTHTTTHHTTTHTTTHTTTTTHHT +TTTTTTTTTHHHTTHTTHTTTTTTTTTTHTTTTTTTTTHTTTHHHTHTTTHHHTTHTTTT +TTHHTHTTTTTTTTHHHTTHHTTTTHTTTTHTHTTHTTTTTTTTTHHTHTHTTTTTTHTH +TTTTTTTHTTTHTTHTTTTHHTTTTTTTTTTTTHTTHHHHHTHTTTTHHTTHHHTHTTHH +HHTTTTHHTTHTTTHTTHTTTTTTTHHTTHTTTTHHTHTTTHTTTTTHHTTHTTTTTTTT +TTTTTTTHHHTTTTTTTTHHTTTTTTTTTTTHHTTHTTTTTHHHHHTTTTTTTTTTTHTT +TTTTTTTTHTHTTTTTTTTTHTTHTTTTHTHTTTTTTTTTHTTHTTTTTTTHTTHHTTTH +HTHTTHHTTHTHHTHTTHHTTHTTHHTTTTTTTTTHHHTTTTTTTTTTTTTTTTHHTTTT +HTTTHTTTTTTTHTTTTHHTTTTTTHTTTTTTHHTTTTHTHTHTTHHHTTTHTTHTHHTH +TTTTTTTTHHTTTTHHTTTHTHTTTHHTHTTHHTTHHTHTTTTHTTTHHTTTHTTTHTTT +TTTTTTTTTTTTTTTHTTHTTTTTTHTTHHHTTTTTTTTTTTTHTTHTTTHTTTTTTHTH +HTHHHTTTHHTTTHHHTTTTTHTTHTTTTTTHTTTTTHTTTTTTHHTHHHTTTTTTTTTT +THTTTHTTTTTTTTTTTHHTTTTTTTTTTTTHTTTTTTTHTTTTTTTTTTTHTTTHTTTT +TTHHTTTTHTTHHTTTHHHTTTTTTTHTTTTTTTHHTHTTHTHTTTTTTTTTTTTTTHTT +HTTTTHTTTTTTTTTTHTTTHTHTTTTTTHTTTTTTTTHHTTTTHTTTTTHTHTHHTTHT +THTTTHTTTHHTTHTTTTTTTTTTTTTTHHHHTTTHTTTTHHTTTTTTTTTHTTTHTTTT +THTTTTTTHTTTTTTTTTTHTTTHTHTTTTTTTTTTTTTTTHTTHTTTTTTHHTTHHTTH +TTTTHTTTTHTHHTTTTTTHHTTTTTTTTTTTTTTHHTTTHTTTTTHTTTTHHTTHTHTT +TTTTTTHTTTHTHTTHHHHTTHTTTTTTHTTTTTTTTTTTTHHTHHTTTTHTHTHTTTTH +TTTTHTTTHTTTTTHTTHTHHHTHTTTTTHHTTTHTHTTTTTTTTTTHTTTTTTTTTHHT +HHTTHTTTHTTHTTTTTTTTTTTTTHHTTHHTTTTTTTTTTTTTTTTTTTTHTTTTTTTT +TTTHHTTTTTTHTHTTHTTHTTHTTTTHTTTTTTTHTHTHTHTHHTHTHTTTHTHTTHTT +TTHHHTTTHHTTTTTTTTTTTTTTHHHHTTHTTTTTTTTHHTHTTTHTHTTTTHTTTHHH +TTTTHHTTTHTTTTTTTTTTHHHTHTTHHTTTHHTTTTTTTTTHTTHTHTTTHTTHTTTT +HTHHTTTTTTTTTTHTTTHTTHHTTTTTTTTHTTTTTHHHTTTTTTTHTTHHHHHTTTTT +HTTHTTTHTTTTTTHTTHTHTTTTTHTTTTTTTHTTTTHHTTTHHHTHTTTHHHTTHHHT +THTTTTTHTTTHHHHTHTTHTTTHTTTHTHHTTHTHTTTHTHTHTHTTTTHHHHTTTHTT +TTHTTTHTTTTHTTTTTHHTHTTTTTTHTTTHTHTTTTTTTTTHTTTTTTTTTTTTHHTH +TTTHTTTTTHTTTHTHHTTTHTTTTHTTHTHHTTHHTTTTTTTTTHTHTTHTTTTTTTTT +HTTTHHTHHTTTTTTTTHTTHHHTTHTTHTTTTTHTTTTTHTTHTTTHTTTTHTTHTHTT +TTTHTTHTTTTTHTTTTTTTTTTTTTTHTHHTTTHTTTTHHTTHTTHHTTTTTTHHTHTT +TTHTTTTTTTTTTTTHTHTTHTHTTHTTTTHTTTTHTTTTTTTHHTTTHTTTTTTHTTTT +THHTTTTTTTTHTTTHTTTTHTTTTHTTHTTTTTTTTHTHTHTTTHTTHTTHHTTTHTTT +TTHTHTTTTTTTTTTTHHTHTTTTTTTTTTTTHTTTTTTHTTHTTHTTHTHTTTTTTHTH +TTTTTTHTTHHTTTTTTTHTHTTTTHTTHTTTHTTTTTTTTTHHTTTHTTHTTHTTTHTT +THTTTTTTTTTHTTHTTHTTTTTHHTHTTTTTHHHTTHTTTTTHTTHHHTHTHHTHTTTT +TTTTTTTTHHTTTTTTTTTTTTTTTTTTTTHHHTTTTTTTHHTTTHTTTHTHTTTTTTTT +HTTTTHTTTTTHTTTTHHTTTTTTTTTTTTTHTHHTTTTTTTTTTTTTHTTHHHHTTTHH +TTTTTTTTHTHTTTTHHTHTTTTTTHTTTTTTHTTHTTTTHHTHHHTHHHTTTTTTHTTH +TTTTTHTHTTTHTTHTHHTTTTHTHTTHTHTTTTTTTTTTTTHHHTHHHTTTHTTTHTTT +TTHTTTTTHTHHTHHTTHTHTTTTTTHHTTTTTHHHTTTTTTTTHTTTTTTTHTTHTTTH +THTTTTHTTTTTTTTTTTTTTTTHTTTTTTTTTTTTHTTTTTTHHTTHTTTHTTTTTTHH +TTHTHHTTTTTTHTTTTTTTTHHTTHTTTTTTHTTTTTTTTHTTTTTTHTHTTTTTTHTT +THHTTTHTTTHTTTHHHTTHTTTTTHTTHHTHHHTTTHHTTTTTTTTTTTHTTHTTTTTT +TTTTHTTHTTHTTTTHTTTTTTTTTTTTHTTTTTTTTTTTTTTTTTTTHTTTTTHTHHHT +TTTTTHTHTTTHTHTHTTTTTTTTTHTTTHHTTHTTTHTTTTTHHTTTTTTTTTTHHTTH +HTTHHTTHTTTTHTTHTTTTTHTHTTTHTTTTHTTTTTHHTTTTHTTTTHTTTHHTTTTT +THHTTTTTTTHTTTTHTTTTHTHHTHTTTTTHTTHHHHTTHTTTHHTTTTTTHTTTTTTT +TTHTTTTHHTHTHTTHTTTTHTHTTTHTTTTTHHHTHTTTHTTTTTTTTTTTTTHHTTTT +TTTTTHTTTHHTTHHTTTTTTTTTHTTTHTTTTTTHHTTTTHHTTTHTHTHHHTTTHTHT +TTTTTTTTHTTHTTTTTTHTTTTTTTTHHTTHTTTTTTTHTHTTTHHTHTTTTTTTHTTT +TTTHHTTTTHHTTTTTTTTTTTTHTTTTHTTTHTTTTTTTHHTTTTHHTTTHTTTTTTTH +TTTTTHTTTTTTTTHHTTTHTTTTTTTTTHTTTTTTTTTHHTTTHTTTHTHTTTTTTTTT +HHTTHTTTTHTHHTTTTTTHTTTTTTTTHTHTTTTTTTTTTTTTTTTTTHTHHTTTTHTT +THTTTTHHTHHTTTTTTTHTHTTTTTTHHTTTTTTHTTHTTTTTTTHTTTTHTTTTTTTT +TTTTTTHHTTTTTHTTHTTTTTTTHHTTHTTTHTTHHTHTTHTHTHTHTTHTTHHTTTHT +THTTHTTTTHTHTTTTHTTTTTHHTTTTHHTTHTTTTTTHHTTHHTTTTHTTTTHTTTHT +TTTTTTTTTTHHTTTHTHTTHTHTTTTTTTTTTTTTTHTHTTTTTTTTTHTTHTHHTTHT +TTHTHTTHTTTTTTTTTTTTHHTTTHTTTTTTTTTTTHTTHTHHTTTHTTTTTHTTTTTT +TTTTTTTTTTTTTTTHTTTTHTTTTHTHTTHTHTTTTHTTHTTTTTTTTTTTTTTHHTHT