Submission

Status:

PPPPP

Subtask/Task Score:

100/100

Score: 100

User: iAOMNC

Problemset: เดินสลับสี

Language: cpp

Time: 0.002 second

Submitted On: 2025-11-09 14:51:49

#include<bits/stdc++.h>
using namespace std;
	char k[30][30];
	char u[30][30];
	int ans=0;
	void ogareroogora(int x,int y,int a)
	{
		if(u[x+1][y]!=u[x][y]&&k[x+1][y]!='0'&&x+1<a)
		{
			k[x][y]='0';
			ogareroogora(x+1,y,a);
			
		}
		if(u[x-1][y]!=u[x][y]&&k[x-1][y]!='0'&&x-1>=0)
		{
			k[x][y]='0';
			ogareroogora(x-1,y,a);
			
		}
		if(u[x][y-1]!=u[x][y]&&k[x][y-1]!='0'&&y-1>=0)
		{
			k[x][y]='0';
			ogareroogora(x,y-1,a);
			
		}
		if(u[x][y+1]!=u[x][y]&&k[x][y+1]!='0'&&y+1<a)
		{
			k[x][y]='0';
			ogareroogora(x,y+1,a);
		}
        if((u[x][y+1]==u[x][y]||k[x][y+1]=='0')&&(u[x][y-1]==u[x][y]||k[x][y-1]=='0')&&(u[x+1][y]==u[x][y]||k[x+1][y]=='0')&&(u[x-1][y]==u[x][y]||k[x-1][y]=='0'))
        {
        
			k[x][y]='0';
			return;
            }
            k[x][y]='0';
            return;
	}
int main()
{
	int a;
	cin >> a;

	for(int i=0;i<a;i++)
	{
		for(int j=0;j<a;j++)
	{
		cin >> k[j][i];
		u[j][i]=k[j][i];
	}
	}
	ogareroogora(0,0,a);
	for(int q=0;q<a;q++)
	{
		for(int t=0;t<a;t++)
	{
		if(k[t][q]=='0')
		{
			ans++;
            
		}
        
	}
	}
	cout << ans;
}