1.对于画线操作,需要注意的是判断以前的字符是否为-或者|,若是,则直接变为+
2.对于填充的操作,可以模拟为一个队列的形式来进行处理,对于每新被填充的位置,就进入队列中,直到队列为空
//90
#include
#include
#include
using namespace std;
int m, n, q, op;
#define NMMAX 110
typedef pair<int, int> PII;
char plot[NMMAX][NMMAX];
int is[NMMAX][NMMAX];
void plotline(int x1, int y1, int x2, int y2) {
if (x1 == x2) {
int x = x1;
for (int i = min(y1,y2); i <= max(y1,y2); i++) {
if (plot[x][i] == '|') plot[x][i] = '+';
else plot[x][i] = '-';
}
}
else {
int y = y1;
for (int i = min(x1, x2); i <= max(x1, x2); i++) {
if (plot[i][y] == '-') plot[i][y] = '+';
else plot[i][y] = '|';
}
}
}
int judge1(int x, int y) {
return x >= 0 && x < n&& y >= 0 && y < m;
}
int judge2(int x, int y,char c) {
return plot[x][y] != '-' && plot[x][y] != '|' && plot[x][y] != '+' && plot[x][y] != c;
}
void padding(int x, int y, char c) {
memset(is, 0, sizeof(is));
queue<PII> Q;
Q.push(make_pair(x, y));
is[x][y] = 1;
while (!Q.empty()) {
PII cur = Q.front();
Q.pop();
//cout << Q.size() << endl;
int x = cur.first, y = cur.second;
plot[x][y] = c;
if (judge1(x - 1, y) && judge2(x - 1, y, c) && !is[x - 1][y]) Q.push(make_pair(x - 1, y)), is[x - 1][y] = 1;
if (judge1(x + 1, y) && judge2(x + 1, y, c) && !is[x + 1][y]) Q.push(make_pair(x + 1, y)), is[x + 1][y] = 1;
if (judge1(x, y - 1) && judge2(x, y - 1, c) && !is[x][y - 1]) Q.push(make_pair(x, y - 1)), is[x][y - 1] = 1;
if (judge1(x, y + 1) && judge2(x, y + 1, c) && !is[x][y + 1]) Q.push(make_pair(x, y + 1)), is[x][y + 1] = 1;
}
}
int main() {
cin >> m >> n >> q;
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) plot[i][j] = '.';
}
while (q--) {
cin >> op;
if (op == 0) {
int x1, y1, x2, y2;
cin >> y1 >> x1 >> y2 >> x2;
if (x1 == x2) plotline(x1,y1,x2,y2);
else plotline(x1, y1, x2, y2);
}
else {
int x, y;
char c;
cin >> y >> x >> c;
if(plot[x][y]!='-' && plot[x][y]!='|' && plot[x][y]!='+') padding(x, y, c);
}
}
for (int i = n - 1; i >= 0; i--) {
for (int j = 0; j < m; j++) {
cout << plot[i][j];
}
cout << endl;
}
}
tip:
1.对于入队的,需要标记其其为已经入队。
2.一个测试点没过,我真的心会碎,也找不到哪里不一样。
SSSSSSSSSSSS|WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW|XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
SSSSSSS|SSSS|WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW-------------+-------------------XXXXXXXXXXXXXXXXXXX
SSSSSSS|SSSS|WWWWWWWWWWWWWWWW|WWWWWWWWWWWWWWWWWWWWW|WWWWWWWWW|XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
SSSSSSS|SSSS|WWWWWWWWWWWWWWWW|WWWWWWWWWWWWWWWWWWWWW|WWWWWWWWW|XXXXXXXXXX|XXXXXXXXXXXXXXXXXXXXXXXXXXX
SS-----+----+----------------+---------------------|WWWWWWW--+----------+--------------------XXXXXXX
SSSSSSS|AAAA|AAAAAAAAAAAAAAAA|NNNNNNNNNNNNNNNNNNNNN|WWWWWWWWW|SSSSSSSSSS|SSSSSSSSSSSS|XXXXXXXXXXXXXX
SSSSSSS|AAAA|AAAAAAAAAAAAAAAA|NNNNNNNNNNNNNNNN-----+---------+--------+-++----------S|XXXXXXXXXXXXXX
SSSSSSS|AAAA|AAAAAAAAAAAAAAAA|NNNNNNNNNNNNNNNNNNNNN|NNNNNNNNN|WWWWWWWW|W||SSSSSSSSSSS|XXXXXXXXXXXXXX
SSSSSSS|AAAA|AAAAAAAAAAAAAAAA|NNNNNNNNNNNNNNNNNNNNN|NNNNNNNNN|WWWWWWWWWW||SSSSSSSSSS||XXXXXXXXXXXXXX
SSSSSSS|AAAA|AAAAAAAAAAAAAAAA|N|NNNNNNNNNNNNNNNNNNN|NNNNNNNNN|WWWWWWWWWW||SSSSSSSSSS||XXXXXXXXXXXXXX
SSSSSSS|AAAA|AAAAAAAAAAAAAAAA|N|NNNNNNNNNNNNNNNNNNN|NNNNNNNNN|WWWWWWWWWW||SSSSSSSSSS||XXXXXXXXXXXXXX
SSSSSSS|AAAA|AAAAAAAAAAAAAAAA|N|NNNNNNNNNNNNNNNN|NN|NNNNNNNNN|WWWWWWWWWW||SSSSSSSSSS||XXXXXXXXXXXXXX
SSSSSSS|AAAA|AAAAAAAAAAAAAAAA|N|NNNNNNNNNNNNNNNN|NN|NNNNNNNN||WWWWWWWWWW||SSSSSSSSSS||XXXXXXXXXXXXXX
SSSSSSS|AAAA|AAAAAAAAAAAAAAAA|N|NNNNNNNNNNNNNNNN|NNNN|NNNNNN||WWWWWWWWWW|SSSSSSSSSSS||XXXXXXXXXXXXXX
SSSSSSS|AAA||AAAAAAAA|AAAAAAA|N|NNNNNNNNNNNNNNNN|NNNN|NNNNNN||WWWWWWWWWW|SSS|SSSSSSS||XXXXXXXXXXXXXX
SSSSSSS|AAA||AAAAAAAA|AAAAAAA|NNNNNNNNNNNNNNNNNN|NNNN|NNNNNN||WWWWWWWWWW|SSS|SSSSSSS||XXXXXXXXXXXXXX
SSSSSSS|AAA|AAAAAAAAA|AAAAAAA|NNNNNNNNNNNNNNNNNN|NNNN|NNNNNNN|WWWWWWWWWW|SSS|SSSSSSS||XXXXXXXXXXXXXX
SSSSSSS|AAA|AAAAAAAAA|AAAAAAA|N|NNNNNNNNNNNNNNNN|NNNN|NNNNNNN|WWWWWWWWWW|SSS|SSSSSSS||XXXXXXXXXXXXXX
SSSSSSS|AAA|AAA|A|AAA|AAAAAAA|N|NNNNNNNNNNNNNNNN|NNNN|NNNNNNN|WWWWWWWWWW|SSS|SSSSSSS||XXXXXXXX|XXXXX
SSSSSSS|AAA|AAA|A|AAA|AAAAAAA|N|NNNNNNNNNNNNNNNN|NNNN|NNNNNNN|WWWWWWWWWW|SSS|SSSSSSS||XXXXXXXX|XXXXX
SS-----+---+---+-+---+-------+-+----------------+----+-------+----------+----SSSSSSS||XXXXXXXX|XXX|X
SSS|SSS|MMM|MMM|M|MMM|MMMMMMM|M|MMMMMMMMMMMMMMMM|----+-------+------+---+-----------++--------+---+X
SSS|SSS|MMM|MMM|M|MMM|MMMMMMM|M|MMMMMMMMMMMMMMMM||SSS|SSSSSSS|WWWWWW|WWW|NNNNNNNNNNN||XXXXXXXX|XXX|X
SSS|SSS|MMM|MMM|M|MMM|MMM|MMM|M|MMMMMMMMMMMMMMMM||SSS|SSSSSSS|WWWWWW|WWW|NNNNNNNNNNN||XXXXXXXX|XXX|X
SSS|SSS|MMM|MMM|M|MMM|MMM|MMM|M|MMMMMMMMMMMMMMMM||SSS|S|SSSSS|WWWWWW|WWW|NNNNNNNNNNN||XXXXXXXX|XXX|X
SSS|SSS|MMM|MMM|M|MMM|MMM|MMM|M|MMMMM|MMMMMMMMMM||SSS|S|SSSSS|WWWWWW|WWW|NNNNNNNNNNN|XXXXXXXXX|XXX|X
SSS|SSS|MMM|MMM|M|MMM|MMM|MMM|M|MMMMM|MMMMMMMMMM||SSS|S|SSSSS|W|WWWW|WWW|NNNNNNNNNNN|XXXXXXXXX|XXX|X
SSS|SSS|MMM|MMM|M|MMM|MMM|MMM|M|MMMMM|MMMMMMMMMM||SSS|S|SSSSS|W|WWWW|WWW|NNNNNNNNNNN|XXXXXXXXX|XXX|X
SS-+---+---+---+-+---+---+-+-+-+-----+----------++---+-+-----+-+----+--W|NNNNNNNNNNN|XXXXXXXXX|XXX|X
SSS|SSS|MMM|MMM|M|MMM|MMM|M|M|M|MMMMM|MMMMMM|MMM||SSS|S|SSSSS|W|WWWW|WWW|NNNNNNNNNNN|XXXXXXXXX|XXX|X
SSS|SSS|MMM|MMM|M|MMM|MMM|M|M|M|MMMMM|MMMMMM|MMM||SSS|S|SSSSS|W|WWWW|WWW|NNNNNNNNNNN|XXXXXXXXX|XXX|X
SSS|SS-|---+---+-+---+-------+-+-----+------+---++---+-+-----+------+---+-----NNNNNN|XXXXXXXXX|XXX|X
SSS|SSS|FFF|F|P|P|PPP|PPP|P|P|P|PPPPP|PPPPPP|PPP||PPP|P|P----+------+---+-----------+----XXXXX|XXX|X
SSS|SSS|FF-+-+-+-+---+---+-+-+--------------+---++---+-+-----+----WW|WWW|XXXXXXXXXXX|XXXXXXXXX|XXX|X
SSS|SSS|FFF|F|P|P|PPP|III|I|I|I|IIIII|PPPPPP|PPP||PPP|R|PPPPP|WWWWWW|WWW|XXXXXXXXXXX|XXXXXXXXX|XXX|X
SSS|SSS|FFF|F|P|P|PPP|III|I|I|I|IIIII|PPPPPP|PPP||PPP|R|PPPPP|WWWWWW|WWW|XXXXXXXXXXXXXXXXXXXXXXXXX|X
SSS|SSS|FFF|F|P|P|PPP|III|I|I|I|IIIII|PPPPPP|PPP||PPP|R|PPPPP|WWWWWW|WWW|XXXXXXXXXXXXXXXXXXXXXXXXX|X
SSS|SSS|FFF|F|P|P|PPP|III|I|I|I|IIIII|PPPPPP|PPP||PPP|R|PPPPP|WW|WWW|WWW|XXXXXXXXXXXXXXXXXXXXXXXXX|X
SSS|SSS|FFF|F|P|P||PP|III|I|I|I|IIIII|PPPPPP|PPP||PPP|R|PPPPP|WW|WWW|WWW|XXXXXXXXXXXXXXXXXXXXXXXXX|X
SSS|SSS|FFF|F|P|P||PP|III|I|I|I|IIIII|PPPPPP|PPP||PPP|R|PPP|P|WW|WWW|WWW|XXXXXXXXXXXXXXX|X--XXXXXX|X
SSS|SSS|FFF|F|P|P||PP|II-+I|I|I|IIIII|PPPPPP|PPP||PPP|R|PPP|P|WW|WWW|WWW|XXXXXXXXXXXXXXX|XXXXXXXXX|X
SSS|SSS|FFF|F|P|P||PP|III|I|I|I|IIIII|PPPPPP|PPP||PPP|R|PPP|P|WW|WWW|WWW|XXXXXXXXXXXXXXX|XXXXXXXXX|X
SSS|SSS|FFF|F|P|P||PP|IIIII|I|IIIIIII|PPPPPP|PPP||PPP|R|PPP|P|WW|WWW|WWW|XXXX-----------+XXXXXXXXX|X
SSS|SS-+---+-+-+-++--+---II|I|IIIIIII|PPPPPP|PPP||PPP|R|PPP|P|WW|WWW|WWW|XXXXXXXXXXXXXXX|XXXXXXXXX|X
SSS|SSS|SSS|S|P|P||CC|IIIII|I|IIIIIII|PPPPPP|PPP||PPP|R|PPP|P|WW|WWW|WWW|XXXXXXXXXXXXXXX|XXXXXXXXX|X
SSS|SSS|SSS|S|P|P||CC|IIIIIII|IIIIIII|PPPPPP|PPP||PPP|R|PPP|P|WW|WWW|WWW|XXXXXXXXXX|XXXX|XXXXXXXXX|X
SS||SSSSSSS|S|P|P||CC|IIIIIII|IIIIIII|PPPPPP|PPP||PPP|R|PPPPP|WW|WWW|WWW|XXXXXXXXXX|XXXX|XXXXXXXXX|X
SS||SSSSSSSSS|P|P||CC|IIIIIII|IIIIIII|PPPPPP|PPP||PPP|R|PPPPP|WW|WWW|WWW|XXXXXXXXXX|XXXX|XXXXXXXXX|X
SS||SSSSSSSSS|P|P||CC|IIIIIII|IIIIIII|PPPPPP|PPP||PPP|R|PPPP||WW|WWW|WWW|XXXXXXXXXX|XXXX|XXXXXXXXX|X
SS||SSSSSSSSS|P|P||CC|IIIIIII|IIIIIII|PPPPPP|PPPP|PPP|R|PPPP||WW|WWW|WWW|XXXXXXXXXX|XXXX|XXXXXXXXX|X
SS||SSSSSSSSS|P|P||CC|IIIIIII|IIIIIII|PPPPPP|PPPP|PPP|R|PPPP||WW|WWW|WWW|XXXXXXXXXX|XXXX|XXXXXXXXX|X
SS||SSSSSSSSS|P|P||CC|IIIIIII|IIIIIII|PPPPPP|PPPP|PPP|R|PPPP||WW|WWWWWWW|XXX-------+----+----------X
SS||SSSSSS---+-+-++--+-------+-------+------+----+---+-+----++--+-------+-----XXXXX|XXXX|XXXXXXXXXXX
SS||SSSSSSSSS|P|P||TT|TTTTTTT|TTTTTTT|PPPPPP|PPPP|PPP|P|PPPPP|WW|WWWWW|W|XXXXXXXXXX|XXXX|XXXXXXXXXXX
SSS|SSSSSSSSS|P|P||TT|TTTTTTT|TTTTTTT|PPPPPP|PPPP|PPP|P|PPPPP|WW|WWWWW|W|XXXXXXXXXX|XXXX|XXXXXXXXXXX
SSSSSSSSSSSSS|P|P||TT|TTTTTTT|TTTTTTT|PPPPPP|PPPP|PPPPP|PPPPP|WW|WWWWW|W|XXXXXXXXXX|XXXX|XXXXXXXXXXX
SSSSSSSSSSSSS|P|P||TT|T|TTTTT|TTTTTTT|PPPPPP|PPPP|PPPPP|PPPPP|WW|WWWWW|W|XXXXXXXXXX|X---+---------XX
SSSSSSSSSSSSS|P|P||TT|T|TTTTT|TTTTTTT|PPPPPPPPPPP|PPPPP|PPPPP|WW|WWWWW|W|XXXXXXXXXX|XXXX|XXXXXXXXXXX
SSSSSSSSSSSSS|P|P||TT|T|TTTTT|TTTTTTT|PPPPPPPPPPP|PPPPP|PPPPP|WW|WWWWW|W|XXXXXXXXXX|XXXX|XXXXXXXXXXX
SSSSSSSSSSSSS|P|P||TTTT|TTTTTTTTTTTTT|PPPPPPPPPPP|PPPPP|PPPPP|WW|WWWWW|W|XXXXXXXXXX|XXXX|XXXXXXXXXXX
SSSSSSSSS----+-+-++----+-------------+-----------------+-----+--+-------+----XXXXXXXXXXX|XXXXXXXXXXX
SSSSSSSSSSSSS|S|S||HHHH|HHHHHHHHHHHHH|HHHHHHHHHHHHHHHHH|KKKKK|WW|SSSSSSS|XXXXXXXXXXXXXXX|XXXXXXXXXXX
SSSSSSSSSSSSSSS|S||HHHH|HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH|KKKKK|WW|SSSSSSS|XXXXXXXXXXXXXXX|XXXXXXXXXXX
SSSSSSSSSSSSSSS|S||HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH|KKKKK|WW|SSSSSSS|XXXXXXXXXXXXXXXXXXXXXXXXXXX
SSSSSSSSSSSSSSS|S||HHHHHHHH----------------------------+-----+--+-------+--------------XXXXXXXXXXXXX
SSSSSSSSSSSSS--+-++------------------------------------+-----+--+-------------XXXXXXXXXXXXXXXXXXXXXX
SSSSSSSSSSSSSSS|S||HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH|KKKKK|WW|XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
SSSSSSSSSSSSSSS|SS|HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH|KKKKK|WW|XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
SSSSSSSSSSSSSSS|SS|HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH|KKKKK|WW|XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
SSSSSSSSSSSSSSS|SS|HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH|KKKKK|WW|XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
SSSSSSSSSSSSSSS|SS|HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH|KKKKK|WW|XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
SSSSSSSSSSSSSSS|SS|HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH|KKKKK|WW|XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
---------------+--+------------------------------------------------------------------XXXXXXXXXXXXXXX
HHHHHHHHHHHHHHH|HH|HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH|XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
HHHHHHHHHHHHHHH|HHHHHHHHHHHHHHHHHHHHHHHHHHHHHH---------------+-----------------------------------XXX
SSSSSSSSSSSS|WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW|XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
SSSSSSS|SSSS|WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW-------------+-------------------XXXXXXXXXXXXXXXXXXX
SSSSSSS|SSSS|WWWWWWWWWWWWWWWW|WWWWWWWWWWWWWWWWWWWWW|WWWWWWWWW|XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
SSSSSSS|SSSS|WWWWWWWWWWWWWWWW|WWWWWWWWWWWWWWWWWWWWW|WWWWWWWWW|XXXXXXXXXX|XXXXXXXXXXXXXXXXXXXXXXXXXXX
SS-----+----+----------------+---------------------|WWWWWWW--+----------+--------------------XXXXXXX
SSSSSSS|AAAA|AAAAAAAAAAAAAAAA|NNNNNNNNNNNNNNNNNNNNN|WWWWWWWWW|SSSSSSSSSS|SSSSSSSSSSSS|XXXXXXXXXXXXXX
SSSSSSS|AAAA|AAAAAAAAAAAAAAAA|NNNNNNNNNNNNNNNN-----+---------+--------+-++----------S|XXXXXXXXXXXXXX
SSSSSSS|AAAA|AAAAAAAAAAAAAAAA|NNNNNNNNNNNNNNNNNNNNN|NNNNNNNNN|WWWWWWWW|W||SSSSSSSSSSS|XXXXXXXXXXXXXX
SSSSSSS|AAAA|AAAAAAAAAAAAAAAA|NNNNNNNNNNNNNNNNNNNNN|NNNNNNNNN|WWWWWWWWWW||SSSSSSSSSS||XXXXXXXXXXXXXX
SSSSSSS|AAAA|AAAAAAAAAAAAAAAA|N|NNNNNNNNNNNNNNNNNNN|NNNNNNNNN|WWWWWWWWWW||SSSSSSSSSS||XXXXXXXXXXXXXX
SSSSSSS|AAAA|AAAAAAAAAAAAAAAA|N|NNNNNNNNNNNNNNNNNNN|NNNNNNNNN|WWWWWWWWWW||SSSSSSSSSS||XXXXXXXXXXXXXX
SSSSSSS|AAAA|AAAAAAAAAAAAAAAA|N|NNNNNNNNNNNNNNNN|NN|NNNNNNNNN|WWWWWWWWWW||SSSSSSSSSS||XXXXXXXXXXXXXX
SSSSSSS|AAAA|AAAAAAAAAAAAAAAA|N|NNNNNNNNNNNNNNNN|NN|NNNNNNNN||WWWWWWWWWW||SSSSSSSSSS||XXXXXXXXXXXXXX
SSSSSSS|AAAA|AAAAAAAAAAAAAAAA|N|NNNNNNNNNNNNNNNN|NNNN|NNNNNN||WWWWWWWWWW|SSSSSSSSSSS||XXXXXXXXXXXXXX
SSSSSSS|AAA||AAAAAAAA|AAAAAAA|N|NNNNNNNNNNNNNNNN|NNNN|NNNNNN||WWWWWWWWWW|SSS|SSSSSSS||XXXXXXXXXXXXXX
SSSSSSS|AAA||AAAAAAAA|AAAAAAA|NNNNNNNNNNNNNNNNNN|NNNN|NNNNNN||WWWWWWWWWW|SSS|SSSSSSS||XXXXXXXXXXXXXX
SSSSSSS|AAA|AAAAAAAAA|AAAAAAA|NNNNNNNNNNNNNNNNNN|NNNN|NNNNNNN|WWWWWWWWWW|SSS|SSSSSSS||XXXXXXXXXXXXXX
SSSSSSS|AAA|AAAAAAAAA|AAAAAAA|N|NNNNNNNNNNNNNNNN|NNNN|NNNNNNN|WWWWWWWWWW|SSS|SSSSSSS||XXXXXXXXXXXXXX
SSSSSSS|AAA|AAA|A|AAA|AAAAAAA|N|NNNNNNNNNNNNNNNN|NNNN|NNNNNNN|WWWWWWWWWW|SSS|SSSSSSS||XXXXXXXX|XXXXX
SSSSSSS|AAA|AAA|A|AAA|AAAAAAA|N|NNNNNNNNNNNNNNNN|NNNN|NNNNNNN|WWWWWWWWWW|SSS|SSSSSSS||XXXXXXXX|XXXXX
SS-----+---+---+-+---+-------+-+----------------+----+-------+----------+----SSSSSSS||XXXXXXXX|XXX|X
SSS|SSS|MMM|MMM|M|MMM|MMMMMMM|M|MMMMMMMMMMMMMMMM|----+-------+------+---+-----------++--------+---+X
SSS|SSS|MMM|MMM|M|MMM|MMMMMMM|M|MMMMMMMMMMMMMMMM||SSS|SSSSSSS|WWWWWW|WWW|NNNNNNNNNNN||XXXXXXXX|XXX|X
SSS|SSS|MMM|MMM|M|MMM|MMM|MMM|M|MMMMMMMMMMMMMMMM||SSS|SSSSSSS|WWWWWW|WWW|NNNNNNNNNNN||XXXXXXXX|XXX|X
SSS|SSS|MMM|MMM|M|MMM|MMM|MMM|M|MMMMMMMMMMMMMMMM||SSS|S|SSSSS|WWWWWW|WWW|NNNNNNNNNNN||XXXXXXXX|XXX|X
SSS|SSS|MMM|MMM|M|MMM|MMM|MMM|M|MMMMM|MMMMMMMMMM||SSS|S|SSSSS|WWWWWW|WWW|NNNNNNNNNNN|XXXXXXXXX|XXX|X
SSS|SSS|MMM|MMM|M|MMM|MMM|MMM|M|MMMMM|MMMMMMMMMM||SSS|S|SSSSS|W|WWWW|WWW|NNNNNNNNNNN|XXXXXXXXX|XXX|X
SSS|SSS|MMM|MMM|M|MMM|MMM|MMM|M|MMMMM|MMMMMMMMMM||SSS|S|SSSSS|W|WWWW|WWW|NNNNNNNNNNN|XXXXXXXXX|XXX|X
SS-+---+---+---+-+---+---+-+-+-+-----+----------++---+-+-----+-+----+--W|NNNNNNNNNNN|XXXXXXXXX|XXX|X
SSS|SSS|MMM|MMM|M|MMM|MMM|M|M|M|MMMMM|MMMMMM|MMM||SSS|S|SSSSS|W|WWWW|WWW|NNNNNNNNNNN|XXXXXXXXX|XXX|X
SSS|SSS|MMM|MMM|M|MMM|MMM|M|M|M|MMMMM|MMMMMM|MMM||SSS|S|SSSSS|W|WWWW|WWW|NNNNNNNNNNN|XXXXXXXXX|XXX|X
SSS|SS-+---+---+-+---+---+-+-+-+-----+------+---++---+-+-----+------+---+-----NNNNNN|XXXXXXXXX|XXX|X
SSS|SSS|FFF|F|P|P|PPP|PPP|P|P|P|PPPPP|PPPPPP|PPP||PPP|P|P----+------+---+-----------+----XXXXX|XXX|X
SSS|SSS|FF-+-+-+-+---+---+-+-+-+-----+------+---++---+-+-----+----WW|WWW|XXXXXXXXXXX|XXXXXXXXX|XXX|X
SSS|SSS|FFF|F|P|P|PPP|III|I|I|I|IIIII|PPPPPP|PPP||PPP|R|PPPPP|WWWWWW|WWW|XXXXXXXXXXX|XXXXXXXXX|XXX|X
SSS|SSS|FFF|F|P|P|PPP|III|I|I|I|IIIII|PPPPPP|PPP||PPP|R|PPPPP|WWWWWW|WWW|XXXXXXXXXXXXXXXXXXXXXXXXX|X
SSS|SSS|FFF|F|P|P|PPP|III|I|I|I|IIIII|PPPPPP|PPP||PPP|R|PPPPP|WWWWWW|WWW|XXXXXXXXXXXXXXXXXXXXXXXXX|X
SSS|SSS|FFF|F|P|P|PPP|III|I|I|I|IIIII|PPPPPP|PPP||PPP|R|PPPPP|WW|WWW|WWW|XXXXXXXXXXXXXXXXXXXXXXXXX|X
SSS|SSS|FFF|F|P|P||PP|III|I|I|I|IIIII|PPPPPP|PPP||PPP|R|PPPPP|WW|WWW|WWW|XXXXXXXXXXXXXXXXXXXXXXXXX|X
SSS|SSS|FFF|F|P|P||PP|III|I|I|I|IIIII|PPPPPP|PPP||PPP|R|PPP|P|WW|WWW|WWW|XXXXXXXXXXXXXXX|X--XXXXXX|X
SSS|SSS|FFF|F|P|P||PP|II-+I|I|I|IIIII|PPPPPP|PPP||PPP|R|PPP|P|WW|WWW|WWW|XXXXXXXXXXXXXXX|XXXXXXXXX|X
SSS|SSS|FFF|F|P|P||PP|III|I|I|I|IIIII|PPPPPP|PPP||PPP|R|PPP|P|WW|WWW|WWW|XXXXXXXXXXXXXXX|XXXXXXXXX|X
SSS|SSS|FFF|F|P|P||PP|IIIII|I|IIIIIII|PPPPPP|PPP||PPP|R|PPP|P|WW|WWW|WWW|XXXX-----------+XXXXXXXXX|X
SSS|SS-+---+-+-+-++--+---II|I|IIIIIII|PPPPPP|PPP||PPP|R|PPP|P|WW|WWW|WWW|XXXXXXXXXXXXXXX|XXXXXXXXX|X
SSS|SSS|SSS|S|P|P||CC|IIIII|I|IIIIIII|PPPPPP|PPP||PPP|R|PPP|P|WW|WWW|WWW|XXXXXXXXXXXXXXX|XXXXXXXXX|X
SSS|SSS|SSS|S|P|P||CC|IIIIIII|IIIIIII|PPPPPP|PPP||PPP|R|PPP|P|WW|WWW|WWW|XXXXXXXXXX|XXXX|XXXXXXXXX|X
SS||SSSSSSS|S|P|P||CC|IIIIIII|IIIIIII|PPPPPP|PPP||PPP|R|PPPPP|WW|WWW|WWW|XXXXXXXXXX|XXXX|XXXXXXXXX|X
SS||SSSSSSSSS|P|P||CC|IIIIIII|IIIIIII|PPPPPP|PPP||PPP|R|PPPPP|WW|WWW|WWW|XXXXXXXXXX|XXXX|XXXXXXXXX|X
SS||SSSSSSSSS|P|P||CC|IIIIIII|IIIIIII|PPPPPP|PPP||PPP|R|PPPP||WW|WWW|WWW|XXXXXXXXXX|XXXX|XXXXXXXXX|X
SS||SSSSSSSSS|P|P||CC|IIIIIII|IIIIIII|PPPPPP|PPPP|PPP|R|PPPP||WW|WWW|WWW|XXXXXXXXXX|XXXX|XXXXXXXXX|X
SS||SSSSSSSSS|P|P||CC|IIIIIII|IIIIIII|PPPPPP|PPPP|PPP|R|PPPP||WW|WWW|WWW|XXXXXXXXXX|XXXX|XXXXXXXXX|X
SS||SSSSSSSSS|P|P||CC|IIIIIII|IIIIIII|PPPPPP|PPPP|PPP|R|PPPP||WW|WWWWWWW|XXX-------+----+----------X
SS||SSSSSS---+-+-++--+-------+-------+------+----+---+-+----++--+-------+-----XXXXX|XXXX|XXXXXXXXXXX
SS||SSSSSSSSS|P|P||TT|TTTTTTT|TTTTTTT|PPPPPP|PPPP|PPP|P|PPPPP|WW|WWWWW|W|XXXXXXXXXX|XXXX|XXXXXXXXXXX
SSS|SSSSSSSSS|P|P||TT|TTTTTTT|TTTTTTT|PPPPPP|PPPP|PPP|P|PPPPP|WW|WWWWW|W|XXXXXXXXXX|XXXX|XXXXXXXXXXX
SSSSSSSSSSSSS|P|P||TT|TTTTTTT|TTTTTTT|PPPPPP|PPPP|PPPPP|PPPPP|WW|WWWWW|W|XXXXXXXXXX|XXXX|XXXXXXXXXXX
SSSSSSSSSSSSS|P|P||TT|T|TTTTT|TTTTTTT|PPPPPP|PPPP|PPPPP|PPPPP|WW|WWWWW|W|XXXXXXXXXX|X---+---------XX
SSSSSSSSSSSSS|P|P||TT|T|TTTTT|TTTTTTT|PPPPPPPPPPP|PPPPP|PPPPP|WW|WWWWW|W|XXXXXXXXXX|XXXX|XXXXXXXXXXX
SSSSSSSSSSSSS|P|P||TT|T|TTTTT|TTTTTTT|PPPPPPPPPPP|PPPPP|PPPPP|WW|WWWWW|W|XXXXXXXXXX|XXXX|XXXXXXXXXXX
SSSSSSSSSSSSS|P|P||TTTT|TTTTTTTTTTTTT|PPPPPPPPPPP|PPPPP|PPPPP|WW|WWWWW|W|XXXXXXXXXX|XXXX|XXXXXXXXXXX
SSSSSSSSS----+-+-++----+-------------+-----------------+-----+--+-------+----XXXXXXXXXXX|XXXXXXXXXXX
SSSSSSSSSSSSS|S|S||HHHH|HHHHHHHHHHHHH|HHHHHHHHHHHHHHHHH|KKKKK|WW|SSSSSSS|XXXXXXXXXXXXXXX|XXXXXXXXXXX
SSSSSSSSSSSSSSS|S||HHHH|HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH|KKKKK|WW|SSSSSSS|XXXXXXXXXXXXXXX|XXXXXXXXXXX
SSSSSSSSSSSSSSS|S||HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH|KKKKK|WW|SSSSSSS|XXXXXXXXXXXXXXXXXXXXXXXXXXX
SSSSSSSSSSSSSSS|S||HHHHHHHH----------------------------+-----+--+-------+--------------XXXXXXXXXXXXX
SSSSSSSSSSSSS--+-++------------------------------------+-----+--+-------------XXXXXXXXXXXXXXXXXXXXXX
SSSSSSSSSSSSSSS|S||HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH|KKKKK|WW|XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
SSSSSSSSSSSSSSS|SS|HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH|KKKKK|WW|XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
SSSSSSSSSSSSSSS|SS|HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH|KKKKK|WW|XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
SSSSSSSSSSSSSSS|SS|HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH|KKKKK|WW|XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
SSSSSSSSSSSSSSS|SS|HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH|KKKKK|WW|XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
SSSSSSSSSSSSSSS|SS|HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH|KKKKK|WW|XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
---------------+--+------------------------------------+-----+--+--------------------XXXXXXXXXXXXXXX
HHHHHHHHHHHHHHH|HH|HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH|XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
HHHHHHHHHHHHHHH|HHHHHHHHHHHHHHHHHHHHHHHHHHHHHH---------------+-----------------------------------XXX