package Virus_Virus;
public class Virus_BFS {
public static int[][] map={{1,1,0,0},{1,0,0,0},{0,1,1,0},{0,1,1,0}};
public static int[] direx={-1,0,1,0};
public static int[] direy={0,1,0,-1};
public static boolean change=false;
public static boolean BFS(int posx,int posy,int flagunm){
boolean res=false;
int new_posx=0;
int new_posy=0;
for(int i=0;i<4;i++){
new_posx=posx+direx[i];
new_posy=posy+direy[i];
if(new_posx>=0&&new_posx<4&&new_posy>=0&&new_posy<4&&map[new_posx][new_posy]==1){
map[new_posx][new_posy]=flagunm;
res=true;
}
}
return res;
}
public static void count(int x,int y,int flag){
map[x][y]=2;
boolean isGoOn=true;
while( isGoOn ){
for(int i=0;i<4;i++){
for(int j=0;j<4;j++){
if(map[i][j]==flag)
{
isGoOn=BFS(i,j,flag+1);
}
}
}
flag++;
}
}
public static void main(String[] args){
for(int i=0;i<4;i++){
for(int j=0;j<4;j++){
System.out.print(map[i][j]+" ");
}
System.out.println(" ");
}
System.out.println(" ");
count(0,0,2);
for(int k=0;k<4;k++){
for(int m=0;m<4;m++){
System.out.print(map[k][m]+" ");
}
System.out.println(" ");
}
System.out.println(" ");
}
}