蒟蒻求助
查看原帖
蒟蒻求助
532946
melons_sundae楼主2023/5/29 14:58

样例过了,第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;
}
2023/5/29 14:58
加载中...