样例过了,第5个点WA了
#include<bits/stdc++.h>
using namespace std;
int n,m,r,c,x,y,s;
char a[2002][2002];
bool v[2002][2002];
void dfs(int xx,int yy,int sx,int sy) {
if(sx<x&&yy-1>=0&&v[xx][yy-1]==0&&a[xx][yy-1]=='.') {
v[xx][yy-1]=1;
dfs(xx,yy-1,sx+1,sy);
}
if(sy<y&&yy+1<m&&v[xx][yy+1]==0&&a[xx][yy+1]=='.') {
v[xx][yy+1]=1;
dfs(xx,yy+1,sx,sy+1);
}
if(xx-1>=0&&v[xx-1][yy]==0&&a[xx-1][yy]=='.') {
v[xx-1][yy]=1;
dfs(xx-1,yy,sx,sy);
}
if(xx+1<n&&v[xx+1][yy]==0&&a[xx+1][yy]=='.') {
v[xx+1][yy]=1;
dfs(xx+1,yy,sx,sy);
}
return;
}
int main() {
scanf("%d%d%d%d%d%d",&n,&m,&r,&c,&x,&y);
for(int i=0;i<n;i++)
for(int j=0;j<m;j++)
cin>>a[i][j];
r--,c--;
v[r][c]=1;
dfs(r,c,0,0);
for(int i=0;i<n;i++)
for(int j=0;j<m;j++)
if(v[i][j]==1)
s++;
printf("%d",s);
return 0;
}