/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ /* * File: main.cpp * Author: cteam019 * * Created on October 28, 2017, 12:20 PM */ #include #include #include using namespace std; void draw(char ** canvas, long m, long x, long y, char leaf_l, char leaf_r, char mid) { for (long i = 0; i < m; ++i) { for (long j = 0; j < m; ++j) { if (j == x && i == y) canvas [m-i-1][j] = mid; if (j == x-1 && i == y) canvas[m-i-1][j] = leaf_l; if (j == x+1 && i == y) canvas[m-i-1][j] = leaf_r; } } } //------------------------------------------------------------------------------ void fillDots (char ** canvas, long m) { for (long i = 0; i < m; ++i) { for (long j =0; j < m; ++j) { canvas[i][j] = '.'; } } } //------------------------------------------------------------------------------ void drawTree (char ** canvas, long m, long s, long x, long y) { // root draw (canvas, m, x, y++, '_', '_', '|' ); for (long i = 0; i < s; ++i) { // brush draw (canvas, m, x, y++, '/', '\\', '|' ); } // top draw(canvas, m, x, y++, '.', '.', '^'); } //------------------------------------------------------------------------------ void printRes (char ** canvas, long m) { for (long i = 0; i < m+2; ++i) cout << '*'; cout << endl; for (long i = 0; i < m; ++i) { cout << '*'; for (long j = 0; j < m; ++ j) { cout << canvas[i][j]; } cout << '*'<< endl; } for (long i = 0; i < m+2; ++i) cout << '*'; cout << endl; cout << endl; } //------------------------------------------------------------------------------ int main(int argc, char** argv) { long m, n, s, x, y; while (cin >> m >> n) { char **canvas= new char* [m]; for (int i = 0; i < m; i++) { canvas[i] = new char[m]; } // char canvas[m][m]; fillDots(canvas, m); for (long i = 0; i < n; ++ i) { cin >> s >> x >> y; if (s != 0) drawTree(canvas, m, s, x, y); else draw(canvas, m, x, y, '_', '_', 'o'); } printRes(canvas, m); for (int i = 0; i < m; i++) { delete[] canvas[i]; } delete[] canvas; } return 0; }