#include #include #include using namespace std; int n , crt , i , j; char mat[100][100] , s[20][9999] , S[1000]; int t[100] , d[100]; void init() { int i , j; for (i = 1; i <= 10; ++i) s[i][5] = '|'; s[1][7] = 92; s[2][8] = '}'; s[3][7] = '/' ; s[4][6] = '/'; s[5][4] = '/'; s[6][3] = '/'; s[7][2] = '{'; s[8][3] = 92; s[8][4] = '_'; s[8][6] = '_'; s[8][7]='/'; s[7][7] = 92; s[9][6] = 92; s[10][6] = '_'; s[10][7] = '}'; s[4][10] = s[6][10] = '4'; strcpy(mat[1] , "C"); strcpy(mat[2] , "C#"); strcpy(mat[3] , "D"); strcpy(mat[4] , "D#"); strcpy(mat[5] , "E"); strcpy(mat[6] , "F"); strcpy(mat[7] , "F#"); strcpy(mat[8] , "G"); strcpy(mat[9] , "G#"); strcpy(mat[10] , "A"); strcpy(mat[11] , "A#"); strcpy(mat[12] , "B"); strcpy(mat[13] , "C2"); strcpy(mat[14] , "C2#"); t[1] = t[2] = 11; t[3] = t[4] = 10; t[5] = 9; t[6] = t[7] = 8; t[8] = t[9] = 7; t[10] = t[11] = 6; t[12] = 5; t[13] = t[14] = 4; d[1] = 2; d[2] = 4; d[3] = 7; d[4] = 9; d[5] = 11; d[6] = 14; d[0] = 6; } void make(int j , int tip) { int i = t[tip]; s[i][j] = '@'; s[i][j-1] = '('; s[i][j+1] = ')'; int k; for (k = 1; k <= d[0]; ++k) if (d[k] == tip) break; if (k <= d[0]) s[i][j-2] = '#'; if (tip <= 11) { for (int ii = i - 1; ii >= i - 3; ii--) s[ii][j+1] = '|'; } else { for (int ii = i + 1; ii <= i + 3; ii++) s[ii][j-1] = '|'; } } int main() { //reopen("staff.in","r",stdin); //freopen("staff.out","w",stdout); scanf("%d\n", &n); init(); crt = 10; for (int k = 1; k<= n; ++k) { gets(S); for (i = 1; i <= 14; ++i) if (strcmp(mat[i] , S) == 0) break; crt += 5; make( crt , i); } crt += 5; s[1][crt] = s[10][crt] = '+'; for (i = 2 ; i <= 9; ++i) s[i][crt]= '|'; for (i = 1; i <= 11 ;++i) { for (j = 1; j <= crt; ++j) if (s[i][j] == '\0' && i <= 10 && i % 2 == 1) printf("-"); else if (s[i][j] == '\0') printf(" "); else printf("%c", s[i][j]); printf("\n"); } return 0; }