paizaオンラインハッカソンMINAMI編終わったー
解き終わった。
最終問題は、入力フォームのところにWarning出まくってたから心配だったけど、
無事に採点通った、よかった~。
こういう腕試しって面白いですね……。
他にも問題に挑戦するためにpaizaに登録してしまいました、
まんまと策略にハマった感じがする(笑)
あとはRENA編が残ってるな。
自分はMINAMI編の最終問題はこう解きました。
/*** 0=空マス、1=爆弾、2=破裂する爆弾 として、 破裂後に破裂していない爆弾は落下するとしたら、 マス目にある爆弾はどうなるかを表示せよ。 マス目は最大20×20とする。 ***/ #include <stdio.h> #include <stdlib.h> int main(void){ int i, j, k ; int height, width ; char **line_str ; int **old_bomb, **new_bomb ; scanf("%d%d\n", &width, &height) ; line_str = malloc(sizeof(char *) * height) ; old_bomb = malloc(sizeof(int *) * height) ; new_bomb = malloc(sizeof(int *) * height) ; for(i=0; i<height; i++){ line_str[i] = (char *)malloc(sizeof(char) * 50 ) ; // width*2 あれば十分だが、入力の手違いを考慮し 50 としている *line_str[i] = '\0' ; old_bomb[i] = (int *)malloc(sizeof(int) * width) ; new_bomb[i] = (int *)malloc(sizeof(int) * width) ; gets(line_str[i]) ; /** old_bomb[i][j] に、入力された配列を代入していく ** ** i : 上からの高さ j : 左からの数 start from 0 **/ k = 0 ; for(j=0; k= 0; i--){ if(remain > 0){ new_bomb[i][j] = 1 ; remain-- ; }else{ new_bomb[i][j] = 0 ; } } } for(i=0; i<height; i++){ for(j=0; ; ){ //printf("old_bomb[%d][%d] = %d \n", i, j, old_bomb[i][j] ) ; //printf("new_bomb[%d][%d] = %d \n", i, j, new_bomb[i][j] ) ; printf("%d", new_bomb[i][j] ) ; if(++j == width){ break ; }else{ printf(" ") ; } } printf("\n") ; } return(0) ; }
「こここうするといいよ」がありましたらぜひぜひ。