#include int size; char picture[1000][1000]; void print_stump(int x, int y) { if(y > size ) return; y = size - y; x--; y--; if(x > 0) picture[y][x] = '_'; x++; if(x > 0) picture[y][x] = 'o'; x++; if(x > 0) picture[y][x] = '_'; } void print_tree(int x, int y, int s) { y = size - y; // x--; y--; if(y <= size) { int tx = x -1; if(tx >= 0) picture[y][tx] = '_'; tx++; if(x >= 0) picture[y][tx] = '|'; tx++; if(x >= 0) picture[y][tx] = '_'; } for(int i = 1; i <= s; i++) { if(y-i < 0 ) return; if(y - i >= size) continue; int tx = x - 1; if(tx >= 0) picture[y-i][tx] = '/'; tx++; if(tx >= 0) picture[y-i][tx] = '|'; tx++; if(tx >= 0) picture[y-i][tx] = '\\'; } if (y - s -1 >= 0 ) { if (x >= 0 ) picture[y-s - 1][x] = '^'; } } int main() { int lines; while(scanf("%d %d", &size, &lines) != EOF ) { //TODO DOTS for(int i = 0; i < size; i++) { for (int j = 0; j < size; j++ ) { picture[i][j] = '.'; } } for(int i = 0; i < lines; i++) { int x, y, s; scanf("%d %d %d", &s, &x, &y); if(s == 0) { print_stump(x, y); } else { print_tree(x, y, s); } } // print for(int i = 0; i < size + 2; i++) printf("*"); printf("\n"); for(int i = 0; i < size; i++) { printf("*"); for(int j = 0; j < size; j++) { printf("%c", picture[i][j]); } printf("*\n"); } for(int i = 0; i < size + 2; i++) printf("*"); printf("\n"); printf("\n"); } return 0; }