Do i have to check if a marking is inside a closed zone before
i attempt to fill it?
As it is, i'm not doing that and my submission keeps getting rejected.
Thanks
Broderick
Moderator: Board moderators
Judge wrote:Your program has died with signal 11 (SIGSEGV). Meaning:
Invalid memory reference
\n
XXXXXXXXXXXXXXXXXXXX
X X X
X # # XXXXXXXX / X
X X X
XXXXXXXXXXXXXXXXXXXX
_____________________________
\n
XXXXXXXXXXXX XXXXXX
X # XXX XXX X X
X XX X X X X
X X X XXXXXXX XXXXXXX
X XX X
X X XXXX XXXXXXXX
XX XXXX X X / X
X X X / X
XXXXXXXXXXXXX XXXXXXXX
_____________________________
\n
\n
XXXXXXXXXXXXXXXXXXXX
X######X///////////X
X######XXXXXXXX////X
X#############X////X
XXXXXXXXXXXXXXXXXXXX
_____________________________
\n
XXXXXXXXXXXX XXXXXX
X###########XXX XXX X X
X##XX#########X X X X
X##X X##XXXXXXX XXXXXXX
X###XX###X
X#######X XXXX XXXXXXXX
XX#####XXXX##X X//////X
X###########X X//////X
XXXXXXXXXXXXX XXXXXXXX
_____________________________
\n

X and _ 
#include <cstdio>
#include <algorithm>
#include <iostream>
using namespace std;
char map[100][100];
int m,n;
void dfs(int x,int y,char c)
{
map[x][y] = c;
if(x-1 >=0 && map[x-1][y] !='X' && map[x-1][y] !=c)
dfs(x-1,y,c);
if(y-1>=0 && map[x][y-1] !='X' && map[x][y-1] !=c)
dfs(x,y-1,c);
if(x<=n-2 && map[x+1][y] != 'X' && map[x+1][y] !=c)
dfs(x+1,y,c);
if(y<=m-1 && map[x][y+1] != 'X' && map[x][y+1] !=c)
dfs(x,y+1,c);
}
int main()
{
int i,j;
memset(map,0,sizeof(map));
while(gets(map[0])){
m = 30;
n=0;
while(map[n][0] !='_')
cin.getline(map[++n], 100);
for(i=0;i<n;i++)
for(j=0;j<m;j++)
if(map[i][j] != ' ' && map[i][j] !='X' && map[i][j] !='\n' && map[i][j] !='\0' && map[i][j] !='\t')
dfs(i,j,map[i][j]);
for(i=0;i<=n;i++)
cout <<map[i]<<endl;
n=0;
memset(map,0,sizeof(map));
}
return 0;
}
Users browsing this forum: No registered users and 0 guests