#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; const int INF = 0x3f3f3f3f; const double EPS = 0.000000001; const double PI = 3.141592653589793; const long long LLINF = 99999999999999999LL; const int MAX_N = 100002; const int MOD = 1000000007; struct Note { int line, sense, sharp; Note() { line = sense = sharp = 0; } }; int N, M, K; Note v[50]; map < string, int > Map; char sol[15][5000]; void add(string s, int line, int sense, int sharp) { Map[s] = ++K; v[K].line = line; v[K].sense = sense; v[K].sharp = sharp; } void draw(int ind, int p) { int l = v[ind].line; sol[l][p] = '@'; sol[l][p - 1] = '('; sol[l][p + 1] = ')'; if(v[ind].sharp) sol[l][p - 2] = '#'; if(v[ind].sense == 0) { for(int i = l - 1; i >= l - 3; --i) sol[i][p + 1] = '|'; } else { for(int i = l + 1; i <= l + 3; ++i) sol[i][p - 1] = '|'; } } int main() { /* #ifndef ONLINE_JUDGE freopen("data.in", "r", stdin); #endif */ string s; s = "C"; add(s, 11, 0, 0); s = "C#"; add(s, 11, 0, 1); s = "D"; add(s, 10, 0, 0); s = "D#"; add(s, 10, 0, 1); s = "E"; add(s, 9, 0, 0); s = "F"; add(s, 8, 0, 0); s = "F#"; add(s, 8, 0, 1); s = "G"; add(s, 7, 0, 0); s = "G#"; add(s, 7, 0, 1); s = "A"; add(s, 6, 0, 0); s = "A#"; add(s, 6, 0, 1); s = "B"; add(s, 5, 1, 0); s = "C2"; add(s, 4, 1, 0); s = "C2#"; add(s, 4, 1, 1); for(int i = 1; i <= 10; ++i) sol[i][5] = '|'; sol[1][7] = '\\'; sol[2][8] = '}'; sol[3][7] = '/'; sol[4][6] = '/'; sol[5][4] = '/'; sol[6][3] = '/'; sol[7][2] = '{'; sol[7][7] = '\\'; sol[8][3] = '\\'; sol[8][4] = '_'; sol[8][6] = '_'; sol[8][7] = '/'; sol[9][6] = '\\'; sol[10][6] = '_'; sol[10][7] = '}'; sol[4][10] = '4'; sol[6][10] = '4'; M = 15; cin >> N; for(int i = 1; i <= N; ++i) { cin >> s; draw(Map[s], M); M += 5; } sol[1][M] = sol[9][M] = '+'; for(int i = 2; i <= 8; ++i) sol[i][M] = '|'; for(int i = 1; i <= 9; i += 2) for(int j = 1; j <= M; ++j) if(sol[i][j] == 0) sol[i][j] = '-'; for(int i = 1; i <= 11; ++i) { for(int j = 1; j <= M; ++j) if(sol[i][j]) cout << sol[i][j]; else cout << " "; cout << "\n"; } return 0; }