| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
why Runtime error
#include <iostream.h>
char ch[20][20];
int flag[20][20]={0};
static int x,y,q=0;
static int p1[100]={0},p2[100]={0};
int count=0;
int rsearch(int l,int k);
void del()
{
int i,t;
for(i=0;i<20;i++)
for(t=0;t<20;t++)
flag[i][t]=0;
for(i=0;i<20;i++)
for(t=0;t<20;t++)
ch[i][t]='0';
}
int main()
{
int w,h,i,t;
while(1)
{
cin>>w>>h;
if(w==0&&h==0) break;
for(i=0;i<h;i++)
for(t=0;t<w;t++)
{
cin>>ch[i][t];
if(ch[i][t]=='@')
{
x=i;y=t;
p1[0]=x,p2[0]=y;
}
else
continue;
}
rsearch(x,y);
cout<<count+1<<endl;
del();
x=0;y=0;q=0;count=0;
}
return 1;
}
int rsearch(int l,int k)
{
if(ch[l+1][k]=='.'&&flag[l+1][k]==0)
{
q++;count++;
p1[q]=l+1;p2[q]=k;
flag[l+1][k]=1;
rsearch(l+1,k);
}
else if(ch[l-1][k]=='.'&&flag[l-1][k]==0)
{
q++;count++;
p1[q]=l-1;p2[q]=k;
flag[l-1][k]=1;
rsearch(l-1,k);
}
else if(ch[l][k+1]=='.'&&flag[l][k+1]==0)
{
q++;count++;
p1[q]=l;p2[q]=k+1;
flag[l][k+1]=1;
rsearch(l,k+1);
}
else if(ch[l][k-1]=='.'&&flag[l][k-1]==0)
{
q++;count++;
p1[q]=l;p2[q]=k-1;
flag[l][k-1]=1;
rsearch(l,k-1);
}
else if(ch[l][k]=='@'&&q==0)
{
return 1;
}
else
{
q--;
rsearch(p1[q],p2[q]);
}
return 0;
}
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator