#include #include #include #include #include #include int main() { int i, j; int M, N, s, x, y; int posX, posY; int **pole; while(scanf("%d %d", &M, &N) >= 2) { pole = (int **) malloc(M * sizeof(int *)); for(i = 0; i < M; i++) { pole[i] = (int *) malloc(M * sizeof(int)); for(j = 0; j < M; j++) { pole[i][j] = '.'; } } for(i = 0; i < N; i++) { scanf("%d %d %d", &s, &x, &y); posX = x; posY = M - y - 1; if(s > 0) { if(posX >= 0 && posX < M && posY >= 0 && posY < M) { pole[posY][posX] = 124; // | } if(posX - 1 >= 0 && posX - 1 < M && posY >= 0 && posY < M) { pole[posY][posX-1] = 95; // _ } if(posX + 1 >= 0 && posX + 1 < M && posY >= 0 && posY < M) { pole[posY][posX+1] = 95; // _ } for(i = 1; i <= s; i++) { if(posX >= 0 && posX < M && posY-i >= 0 && posY-i < M) { pole[posY-i][posX] = 124; // | } if(posX - 1 >= 0 && posX - 1 < M && posY-i >= 0 && posY-i < M) { pole[posY-i][posX-1] = 47; // / } if(posX + 1 >= 0 && posX + 1 < M && posY-i >= 0 && posY-i < M) { pole[posY-i][posX+1] = 92; // } } if(posX >= 0 && posX < M && posY-s-1 >= 0 && posY-s-1 < M) { pole[posY-s-1][posX] = 94; // | } } else if (s == 0) { if(posX >= 0 && posX < M && posY >= 0 && posY < M) { pole[posY][posX] = 111; // o } if(posX - 1 >= 0 && posX - 1 < M && posY >= 0 && posY < M) { pole[posY][posX-1] = 95; // _ } if(posX + 1 >= 0 && posX + 1 < M && posY >= 0 && posY < M) { pole[posY][posX+1] = 95; // _ } } } for(i = -1; i <= M; i++) { for(j = -1; j <= M; j++) { if(i == -1 || i == M || j == -1 || j == M ) { printf("*"); } else { printf("%c", pole[i][j]); } } printf("\n"); } free(pole); } return 0; }