1102:LC-Display
keyword
概要
数字を指定された大きさのアスキーアートで表現する問題。
実装ゲー。
string str[10][11][40]; int main(){ for(int i=1; i<=10; i++){ str[0][i][0] = ' ' + string(i,'-') + ' '; str[0][i][i+1] = string(i+2,' '); str[0][i][2*(i+1)] = ' ' + string(i,'-') + ' '; for(int j=1; j<=i; j++){ str[0][i][j] = '|' + string(i,' ') + '|'; str[0][i][j+1+i] = '|' + string(i,' ') + '|'; } } for(int i=1; i<=10; i++){ str[1][i][0] = string(i+2,' '); str[1][i][i+1] = string(i+2,' '); str[1][i][2*(i+1)] = string(i+2,' '); for(int j=1; j<=i; j++){ str[1][i][j] = ' ' + string(i,' ') + '|'; str[1][i][j+1+i] = ' ' + string(i,' ') + '|'; } } for(int i=1; i<=10; i++){ str[2][i][0] = ' ' + string(i,'-') + ' '; str[2][i][i+1] = ' ' + string(i,'-') + ' '; str[2][i][2*(i+1)] = ' ' + string(i,'-') + ' '; for(int j=1; j<=i; j++){ str[2][i][j] = ' ' + string(i,' ') + '|'; str[2][i][j+1+i] = '|' + string(i,' ') + ' '; } } for(int i=1; i<=10; i++){ str[3][i][0] = ' ' + string(i,'-') + ' '; str[3][i][i+1] = ' ' + string(i,'-') + ' '; str[3][i][2*(i+1)] = ' ' + string(i,'-') + ' '; for(int j=1; j<=i; j++){ str[3][i][j] = ' ' + string(i,' ') + '|'; str[3][i][j+1+i] = ' ' + string(i,' ') + '|'; } } for(int i=1; i<=10; i++){ str[4][i][0] = ' ' + string(i,' ') + ' '; str[4][i][i+1] = ' ' + string(i,'-') + ' '; str[4][i][2*(i+1)] = ' ' + string(i,' ') + ' '; for(int j=1; j<=i; j++){ str[4][i][j] = '|' + string(i,' ') + '|'; str[4][i][j+1+i] = ' ' + string(i,' ') + '|'; } } for(int i=1; i<=10; i++){ str[5][i][0] = ' ' + string(i,'-') + ' '; str[5][i][i+1] = ' ' + string(i,'-') + ' '; str[5][i][2*(i+1)] = ' ' + string(i,'-') + ' '; for(int j=1; j<=i; j++){ str[5][i][j] = '|' + string(i,' ') + ' '; str[5][i][j+1+i] = ' ' + string(i,' ') + '|'; } } for(int i=1; i<=10; i++){ str[6][i][0] = ' ' + string(i,'-') + ' '; str[6][i][i+1] = ' ' + string(i,'-') + ' '; str[6][i][2*(i+1)] = ' ' + string(i,'-') + ' '; for(int j=1; j<=i; j++){ str[6][i][j] = '|' + string(i,' ') + ' '; str[6][i][j+1+i] = '|' + string(i,' ') + '|'; } } for(int i=1; i<=10; i++){ str[7][i][0] = ' ' + string(i,'-') + ' '; str[7][i][i+1] = ' ' + string(i,' ') + ' '; str[7][i][2*(i+1)] = ' ' + string(i,' ') + ' '; for(int j=1; j<=i; j++){ str[7][i][j] = ' ' + string(i,' ') + '|'; str[7][i][j+1+i] = ' ' + string(i,' ') + '|'; } } for(int i=1; i<=10; i++){ str[8][i][0] = ' ' + string(i,'-') + ' '; str[8][i][i+1] = ' ' + string(i,'-') + ' '; str[8][i][2*(i+1)] = ' ' + string(i,'-') + ' '; for(int j=1; j<=i; j++){ str[8][i][j] = '|' + string(i,' ') + '|'; str[8][i][j+1+i] = '|' + string(i,' ') + '|'; } } for(int i=1; i<=10; i++){ str[9][i][0] = ' ' + string(i,'-') + ' '; str[9][i][i+1] = ' ' + string(i,'-') + ' '; str[9][i][2*(i+1)] = ' ' + string(i,'-') + ' '; for(int j=1; j<=i; j++){ str[9][i][j] = '|' + string(i,' ') + '|'; str[9][i][j+1+i] = ' ' + string(i,' ') + '|'; } } int s, n; while(scanf("%d%d",&s,&n),s){ vector<int> ns; if(!n)ns.push_back(0); for(;n;n/=10)ns.push_back(n%10); reverse(ALL(ns)); for(int i=0; i<=2*(s+1); i++){ for(int j=0; j<SZ(ns); j++){ printf("%s%c", str[ns[j]][s][i].c_str(), (j==SZ(ns)-1)?'\n':' '); } } printf("\n"); } return 0; }