| ||||||||||
| 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 | |||||||||
想多了,随便一码居然就AC了……#include<iostream>
using namespace std;
int Imap[21][21],ans,w,h,si,sj;
int diri[4]={-1,0,1,0};
int dirj[4]={0,1,0,-1};
char Cmap[21][21];
void search(int ii,int jj)
{
if (ii<h&&ii>=0&&jj>=0&&jj<w)
if (Cmap[ii][jj]=='.'&&Imap[ii][jj]==0)
{
Imap[ii][jj]=1;
ans++;
int i;
for (i=0;i<4;i++)
search(ii+diri[i],jj+dirj[i]);
}
return;
}
int main()
{
int i,j,k;
while(cin>>w>>h&&w!=0)
{
memset(Imap,-1,sizeof(Imap));
memset(Cmap,0,sizeof(Cmap));
ans=1;
for (i=0;i<h;i++)
cin>>Cmap[i];
for (i=0;i<h;i++)
for (j=0;j<w;j++)
{
if (Cmap[i][j]=='@')
{si=i;sj=j;}
if (Cmap[i][j]=='.')
Imap[i][j]=0;
}
for (k=0;k<4;k++)
search(si+diri[k],sj+dirj[k]);
cout<<ans<<endl;
}
return 0;
}
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator