代码如下
#include <iostream>
using namespace std;
int p(int,int,char*,int);
int ps=0;
int main()
{
int m,n;
cin>>n>>m;
char map[n][m];
for(int i=0;i<n;i++)
{
for(int j=0;j<m;j++)
{
cin>>map[i][j];
}
}
for(int i=0;i<n;i++)
{
for(int j=0;j<m;j++)
{
if(map[i][j]=='o')
{
p(i,j,&map[0][0],m);
}
}
}
cout<<ps;
}
int p(int x,int y,char* m,int n)
{
ps++;
if(*(m+n*(x+1)+y)=='u'&&x<n){
p(x+1,y,m,n);
}
if(*(m+n*(x-1)+y)=='d'&&x>0){
p(x-1,y,m,n);
}
if(*(m+n*x+y+1)=='l'&&y<n){
p(x,y+1,m,n);
}
if(*(m+n*x+y-1)=='r'&&y>0){
p(x,y-1,m,n);
}
return 0;
}