#include <iostream> #include "map" using namespace std; int m,n; int a[4][2]={{1,0},{0,1},{-1,0},{0,-1}}; char a1[2000][2000]; void dfs(int x, int y){ for (int i = 0; i < 4; ++i) { int x1=x+a[i][0]; int y1=y+a[i][1]; if(x1>=0&&x1<m&&y1>=0&&y1<n&&a1[x1][y1]=='0'){ a1[x1][y1]='*'; dfs(x1,y1); } } } int main() { int x,y; cin>>x>>y; m=x;n=y; for (int i = 0; i < x; ++i) { for (int j = 0; j < y; ++j) { cin>>a1[i][j]; } } for (int i = 0; i < x; ++i) { dfs(i,0); dfs(i,y-1); } for (int i = 0; i < y; ++i) { dfs(0,y); dfs(x,y); } int yy=0; for (int i = 0; i < x; ++i) { for (int j = 0; j < y; ++j) { if(a1[i][j]=='0')yy++; } } cout<<yy; } /************************************************************** Problem: 1913 User: yangyucheng Language: C++ Result: Wrong Answer ****************************************************************/