Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
32106 | 鱼锁嵘 | 漂亮的奶牛 | C++ | 编译错误 | 0 | 0 MS | 0 KB | 776 | 2022-02-09 18:03:40 |
#inclulde<bits/stdc++.h> using namespace std; struct point{ int x,y; }; const int N=55; int n,m,dx[4]={-1,0,1,0},dy[4]={0,1,0,-1}; char g[N][N]; vector<point> v[2]; void dfs(int x,int y,int k){ g[x][y]='.'; v[k].push_back({x,y}); for(int i=0;i<4;i++){ int a=x+dx[i],b=y+dy[i]; if(a>=1&&a<=n && b>=1&&b<=m && g[a][b]=='X'){ dfs(a,b,k); } } } int main(){ cin>>n>>m; for(int i=1;i<=n;i++){ for(int j=1;j<=m;j++) cin>>g[i][j]; } for(int i=1,k=0;i<=n;i++){ for(int j=1;j<=m;j++){ if(g[i][j]=='X'){ dfs(i,j,k++); } } } int res=1e8; for(int i=0;i<v[0].size();i++){ for(int j=0;j<v[1].size();j++){ res=min(res,abs(v[0][i].x-v[1][j].x)+abs(v[0][i].y-v[1][j].y)-1); } } cout<<res<<endl; return 0; }