1 solutions

  • 0
    @ 2025-12-3 17:18:54

    C++ :

    #include<bits/stdc++.h>
    using namespace std;
    int n,m,v[105][105],ans=0,p1,p2;
    char a[105][105];
    void f(int x,int y,int p){
    	if(a[x][y]=='#' || x<1 || x>n || y<1 ||y>m || v[x][y]==p)
    		return;
    	v[x][y]=p;
    	f(x+1,y,p);
    	f(x-1,y,p);
    	f(x,y+1,p);
    	f(x,y-1,p);
    }
    int main()
    {
    	cin>>n>>m;
    	for(int i=1;i<=n;i++)
    		for(int j=1;j<=m;j++)
    			cin>>a[i][j];
    	f(1,1,1);  
    	f(n,m,2);
    	for(int i=1;i<=n;i++)
    		for(int j=1;j<=m;j++)
    		{
    			if(a[i][j]=='#')
    			{
    				p1=0;
    				p2=0;
    				if(v[i+1][j]==1 || v[i-1][j]==1 || v[i][j-1]==1 || v[i][j+1]==1)
    					p1=1;
    				if(v[i+1][j]==2 || v[i-1][j]==2 || v[i][j-1]==2 || v[i][j+1]==2)
    					p2=1;
    				if(p1==1 && p2==1)	ans++;				
    			}
    		}
    	cout<<ans<<endl;
        return 0;
    }
    
    • 1

    Information

    ID
    988
    Time
    1000ms
    Memory
    128MiB
    Difficulty
    (None)
    Tags
    # Submissions
    0
    Accepted
    0
    Uploaded By