这里是题目写在洛谷上了
#include<bits/stdc++.h>
using namespace std;
int n,m;
char t;
char a[1005][1005];
bool vis[1005][1005]={0};
int nf=0;
void BFS(int x,int y)
{
if(char(a[x][y])>t) return;
nf++;
// cout<<x<<" "<<y<<endl;
vis[x][y]=1;
if(x>1&&vis[x-1][y]==0) BFS(x-1,y);
if(y>1&&vis[x][y-1]==0) BFS(x,y-1);
if(y<n&&vis[x][y+1]==0) BFS(x,y+1);
if(x<m&&vis[x+1][y]==0) BFS(x+1,y);
}
int main()
{
int p1,p2;
cin>>n>>m>>p1>>p2;
for(int i=1;i<=n;i++)//m行
{
for(int j=1;j<=m;j++)//n列
{
cin>>a[i][j];
}
}
// for(int i=1;i<=n;i++)//m行
// {
// for(int j=1;j<=m;j++)//n列
// {
// cout<<a[i][j]<<' ';
// }
// cout<<endl;
// }
t=a[p1][p2];
BFS(p1,p2);
cout<<nf;
return 0;
}