Submission

Status:

-----

Subtask/Task Score:

0/100

Score: 0

User: iAOMNC

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

Language: cpp

Time: 0.003 second

Submitted On: 2025-11-08 10:41:30

#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);
			
		}
		else 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);
			
		}
		else 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);
			
		}
		else 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);
		}
		else 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);
			
		}
		else 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);
			
		}
		else 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);
		}
		else 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);
			
		}
		else 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);
		}
		else
		{
			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;
}