提出詳細
ソースコード
#include <stdio.h>
#include<string.h>
int main() {
int c;
int block_type;
int size[4];
int map[10][10] = {};
int height;
int width;
int count = 0;
int flag = 0;
int a = 0;
scanf("%d",&c);
for(int iii=1;iii<=c;iii++){
scanf("%d",&height);
scanf("%d",&width);
for(int ii = 0;ii < width; ii++){
for(int i = 0;i < height; i++){
scanf("%d",&block_type);
map[ii][i] = block_type;
}
}
while(a == 0){
for(int ii = 0;ii < width; ii++){
for(int i = 0;i < height; i++){
if(map[ii][i] == 1){
flag = 1;
if(ii > 0){
if(map[ii - 1][i] == 0){
map[ii - 1][i] = 4;
}
else if(map[ii - 1][i] == 2){
a = 1;
}
}
if(ii <= height){
if(map[ii + 1][i] == 0){
map[ii + 1][i] = 4;
}
else if(map[ii + 1][i] == 2){
a = 1;
}
}
if(i <= width){
if(map[ii][i + 1] == 0){
map[ii][i + 1] = 4;
}
else if(map[ii][i + 1] == 2){
a = 1;
}
}
if(i > 0){
if(map[ii][i - 1] == 0){
map[ii][i - 1] = 4;
}
else if(map[ii][i - 1] == 2){
a = 1;
}
}
map[ii][i] = 3;
}
}
}
for(int ii = 0;ii < width; ii++){
for(int i = 0;i < height; i++){
if(map[ii][i] == 4){
map[ii][i] = 1;
}
printf("%d",map[ii][i]);
}
printf("\n");
}
printf("\n");
count++;
if(flag == 0){
count = 0;
a = 1;
}
flag = 0;
}
printf("Case #%d:\n",iii);
printf("%d\n",count);
a = 0;
flag = 0;
count = 0;
}
return 0;
}
提出情報
提出出力結果
テストケース情報
# |
状態 |
詳細情報 |
正解か誤答の場合のみ表示されます. |