Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
56163 | 王籽易 | 红与黑 | C++ | 通过 | 100 | 0 MS | 264 KB | 883 | 2022-08-01 15:52:00 |
#include <bits/stdc++.h> using namespace std; int w,h,a[30][30],x,y,st[30][30],ans; int dx[5]={0,0,1,0,-1},dy[5]={0,1,0,-1,0}; struct node{ int x,y; }; int main(){ while(cin>>w>>h&&w!=0&&h!=0){ ans=0; memset(a,0,sizeof(a)); memset(st,0,sizeof(st)); getchar(); for(int i=1;i<=h;i++){ for(int j=1;j<=w;j++){ char t; t=getchar(); if(t=='.'){ a[i][j]=0; } else if(t=='@'){ a[i][j]=0; x=i,y=j; } else{ a[i][j]=1; } } getchar(); } queue<node> q; q.push((node){x,y}); while(!q.empty()){ node u=q.front(); q.pop(); for(int i=0;i<=4;i++){ int tx=u.x+dx[i],ty=u.y+dy[i]; if(tx>=1&&tx<=h&&ty>=1&&ty<=w&&st[tx][ty]==0&&a[tx][ty]==0){ st[tx][ty]=1; ans++; q.push((node){tx,ty}); } } } cout<<ans<<endl; } return 0; }