#include #include char pole[100][100]; void kresli (char *p, char c) { /* printf("k: %c -> %c\n", *p, c); */ if (*p == ' ' || *p == c) { *p = c; } else { switch (c) { case '|': case '-': *p = (*p == '|' || *p == '-' || *p == '+') ? '+' : '*'; break; case '/': case '\\': *p = (*p == '/' || *p == '\\' || *p == 'x') ? 'x' : '*'; break; default: *p = '*'; } } } int main() { int x,y, i, x0, y0, x1, y1, t; char cmd[24], text[100], *ptr; for(;;) { scanf("%d %d\n", &x, &y); if (!x && !y) break; pole[0][0] = pole[0][x+1] = '+'; pole[1][0] = pole[1][x+1] = '|'; pole[0][x+2] = pole[1][x+2] = '\n'; pole[0][x+3] = pole[1][x+3] = '\0'; for (i=1; i<=x; i++) { pole[0][i] = '-'; pole[1][i] = ' '; } memcpy(&pole[y+1], &pole[0], x+4); for (i=2; i<=y; i++) memcpy(&pole[i], &pole[1], x+4); for(;;) { scanf("%s", cmd); if (cmd[0] == 'P' && cmd[1] == 'R') { scanf("\n"); for (i=0; i<=y+1; i++) printf("%s", pole[i]); break; } scanf("%d %d", &x0, &y0); if (cmd[0] == 'L' || cmd[0] == 'C') { scanf("%d %d\n", &x1, &y1); } switch (cmd[0]) { case 'L': if (x1 y0) { for (i=x0; i<=x1; i++) kresli ( &pole[y0+i-x0][i], '\\'); } else { for (i=x0; i<=x1; i++) kresli ( &pole[y0-i+x0][i], '/'); } break; case 'C': if (x1