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;
}