最后形成多大面积的湖
#include <stdio.h>
#include <stdlib.h>
#include<string.h>
int a[1111][1111];
int vis[1111][1111];
int n,m,p1,p2,i,o,j;
int a[4]= {0,0,1,-1};
int b[4]= {1,-1,0,0};
void ww(int x,int y)
{
vis[x][y]=1;
o++;
for(int p = 0 ; p < 4 ; p++)
{
int aa = x + a[p];
int bb = y + b[p];
if(aa>=0&&aa<n&&bb>=0&&bb<m&&!vis[aa][bb]&&a[aa][bb]<=a[p1][p2])
{
ww(aa,bb);
}
}
}
int main()
{
while(~scanf("%d%d%d%d",&n,&m,&p1,&p2))
{
p1--;
p2--;
memset(vis,0,sizeof(vis));
for(i=0; i<n; i++)
{
for(j=0; j<m; j++)
{
scanf("%d",&a[i][j]);
}
}
o=0;
ww(p1,p2);
printf("%d\n",o);
}
return 0;
}