比赛 |
暑假培训B班二测 |
评测结果 |
AAAAAA |
题目名称 |
返回住所 |
最终得分 |
100 |
用户昵称 |
Citron酱 |
运行时间 |
0.001 s |
代码语言 |
C++ |
内存使用 |
0.29 MiB |
提交时间 |
2012-07-22 09:41:21 |
显示代码纯文本
#include <cstdio>
#define I_F "backbarn.in"
#define O_F "backbarn.out"
const short MAXn=5+2;
const short R[4][2]={ { 1, 0},
{ 0,-1}, { 0, 1},
{-1, 0}};
short n,m,k,ans=0;
bool map[MAXn][MAXn]={{false}};
void Input();
void Dfs(const short&, const short&, const short&);
void Output();
int main()
{
Input();
Dfs(1,1,1);
Output();
return 0;
}
void Input()
{
freopen(I_F,"r",stdin);
scanf("%hd%hd%hd",&n,&m,&k);
char t;
for (short i=n; i>0; --i)
{
scanf("%*c");
for (short j=1; j<=m; ++j)
{
scanf("%c",&t);
map[i][j]=(t=='.')?true:false;
}
}
}
void Dfs(const short &x, const short &y, const short &j)
{
if (x==n && y==m)
++ans;
else
if (n+m-x-y<=k-j)
{
map[x][y]=false;
for (short i=0; i<4; ++i)
if (map[x+R[i][0]][y+R[i][1]])
Dfs(x+R[i][0], y+R[i][1],j+1);
map[x][y]=true;
}
}
void Output()
{
freopen(O_F,"w",stdout);
printf("%hd\n",ans);
}