AOJ0071 Bombs Chain

問題リンク Bombs Chain

  • 解法

爆発する爆弾の上下左右3マスを探索し、爆弾を見つけたら再帰的に爆弾を爆発させればおkです。

  • ソース
import java.util.Scanner;

//Bombs Chain
public class AOJ0071 {
	
	static char[][] m;
	static int[][] move = {{0,1},{0,-1},{1,0},{-1,0}};
	
	static void f(int i, int j){
		m[i][j] = '0';
		for(int k=0;k<4;k++){
			for(int l=1;l<=3;l++){
				int ni = i+l*move[k][0];
				int nj = j+l*move[k][1];
				if(0<=ni&&ni<8&&0<=nj&&nj<8&&m[ni][nj]=='1'){
					f(ni,nj);
				}
			}
		}
	}
	
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int Case = 1;
		int t = sc.nextInt();
		while(t--!=0){
			m = new char[8][8];
			for(int i=0;i<8;i++)m[i]=sc.next().toCharArray();
			int j=sc.nextInt()-1;
			int i=sc.nextInt()-1;
			f(i,j);
			System.out.println("Data " + Case++ + ":");
			for(int k=0;k<8;k++)System.out.println(new String(m[k]));
		}
	}
}