1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103
| #include <iostream> #include <cstring> #include <algorithm>
using namespace std; using longs = long long; using longd = long double; using ulongs = unsigned long long;
const int inf = 0x3f3f3f3f; const longs INF = 0x3f3f3f3f3f3f3f3f; const double eps = 1e-8;
const char graph[100][100] = { R"(...........................,]]OOO@@@@OOO]`........)", R"(....................,]OO@@@@@@@@@@@@@@@@@@@@O`....)", R"(................./O@@@@@@@@@@@@@@@@@@@@@@@@@@@@^..)", R"(............../O@@@@@@@@@@@@@@@OOOOOOO@@@@@@@@@@@.)", R"(..........,/@@@@@@@@@@@@O/[.............[O@@@@@@@\)", R"(........,O@@@@@@@@@@O/`..................,O@@@@@@O)", R"(.......O@@@@@@@@@O`......]OO@@@O\`........O@@@@@@@)", R"(.....,O@@@@@@@@/`.....]O@@@@@@@@@@^.......O@@@@@@@)", R"(...,/@@@@@@@O/...../@@@@@@@@@@@@@@O....../@@@@@@@0)", R"(..=@@@@@@@O`...../@@@@@@@@@@@@@@@@^.....O@@@@@@@O.)", R"(./@@@@@@@/......O@@@@@@@@@@@@@@@O`..../@@@@@@@@O..)", R"(=@@@@@@@O......O@@@@@@@@@@@@@@@^....O@@@@@@@@@O...)", R"(O@@@@@@@^.....=@@@@@@@@@@@@@O[..../@@@@@@@@@O`....)", R"(@@@@@@@O.......\@@@@@@@@O[...../O@@@@@@@@@O`......)", R"(@@@@@@@@^.........[`.......]OO@@@@@@@@@@O`........)", R"(O@@@@@@@@O\............]/@@@@@@@@@@@@O/...........)", R"(=@@@@@@@OOOoo`........O@@@@@@@@@@@@/`.............)", R"(..\OOOOO*,`*..........O@@@@@@@@@O`................)", R"(.....,[[..............O@@@@@@O`...................)", R"(......................O@@@@@@O....................)" };
char campus[2060][2060];
int main() { ios::sync_with_stdio(false); cin.tie(nullptr);
int n, h, w; int x, y, r;
auto initfill = [&] { for (int i = 0; i < h; ++ i) { for (int j = 0; j < w; ++ j) campus[i][j] = '.'; campus[i][w] = '\0'; } };
auto paint = [&](int x, int y) { for (int i = x, ii = 0; i < h; ++ i, ++ ii) { if (ii >= 20) break; if (i < 0) continue; for (int j = y, jj = 0; j < w; ++ j, ++ jj) { if (jj >= 50) break; if (graph[ii][jj] == '.') continue; if (j < 0) continue; campus[i][j] = graph[ii][jj]; } } };
auto paint180 = [&](int x, int y) { for (int i = x, ii = 19; i < h; ++ i, -- ii) { if (ii < 0) break; if (i < 0) continue; for (int j = y, jj = 49; j < w; ++ j, -- jj) { if (jj < 0) break; if (graph[ii][jj] == '.') continue; if (j < 0) continue; campus[i][j] = graph[ii][jj]; } } };
cin >> n >> h >> w; initfill(); while (n --) { cin >> x >> y >> r; if (r) paint180(x,y); else paint(x,y); }
for (int i = 0; i < h; ++ i) cout << campus[i] << endl;
return 0; }
|