2052880_ac_15ms_52k.c
来自「北大大牛代码 1240道题的原代码 超级权威」· C语言 代码 · 共 67 行
C
67 行
# include <stdio.h>
int W, H;
int ans;
char map[21][21];
int mark[21][21];
void search(int a, int b)
{
if(a+1<H&&map[a+1][b]=='.'&&mark[a+1][b]==0)
{
ans++;
mark[a+1][b] = 1;
search(a+1,b);
}
if(a-1>=0&&map[a-1][b]=='.'&&mark[a-1][b]==0)
{
ans++;
mark[a-1][b] = 1;
search(a-1,b);
}
if(b+1<W&&map[a][b+1]=='.'&&mark[a][b+1]==0)
{
ans++;
mark[a][b+1] = 1;
search(a,b+1);
}
if(b-1>=0&&map[a][b-1]=='.'&&mark[a][b-1]==0)
{
ans++;
mark[a][b-1] = 1;
search(a,b-1);
}
}
void input()
{
while(scanf("%d%d",&W,&H)==2&&(W||H))
{
int i, j;
int si, sj;
ans = 1;
for(i = 0; i < H; i++)
{
getchar();
for(j = 0; j < W; j++)
{
mark[i][j] = 0;
scanf("%c",&map[i][j]);
if(map[i][j]=='@')
{
si = i;sj = j;
mark[i][j] = 1;
}
}
}
search(si,sj);
printf("%d\n",ans);
}
}
int main()
{
input();
return 1;
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?