杭电1010(WA)
2015-06-18 21:03 HaodongGUO 阅读(182) 评论(0) 收藏 举报#include<stdio.h>
#include<iostream>
#include<stdlib.h>
#include<string.h>
#include<algorithm>
using namespace std;
char s[100][100];
int flag=-1;
int bx[4]={0,0,-1,1};int by[4]={-1,1,0,0},n,m;
void dfs(int x,int y,int t)
{
t--;
int i,dx,dy;
for(i=0;i<4;i++)
{
dx=x+ bx[i];
dy=y+by[i];
if(dx<n&&dx>-1&&dy<m&&dy>-1&&s[dx][dy]=='S')
{
if(t>=0)
{
s[dx][dy]='X';
printf("YES\n");
flag=1;
}}
if(dx<n&&dx>-1&&dy<m&&dy>-1&&s[dx][dy]=='.')
{
s[dx][dy]='X';
dfs(dx,dy,t);
}
}
}
int main()
{
int t,j,i,dx,dy;
while((scanf("%d%d%d",&n,&m,&t)==3)&&(n!=0&&m!=0&&t!=0)){
flag=-1;
for(i=0;i<n;i++)
for(j=0;j<m;j++)
{
cin>>s[i][j];
if(s[i][j]=='D'){
dx=i;dy=j;
}
}
dfs(dx,dy,t);
if(flag==-1)
printf("NO\n");
}
return 0;
}
菜鸟写了两个小时的1010题后并没有发现为什么错,懒得找测试数据,贴个wa贴
浙公网安备 33010602011771号