Untitled

mail@pastecode.io avatar
unknown
plain_text
9 days ago
7.7 kB
0
Indexable
Never
Input

2

5

1 1 0 0 0

1 2 2 2 1

1 1 2 2 1

2 2 2 1 2

2 2 0 2 0

8

2 0 2 0 2

1 0 1 2 0

0 0 0 2 1

2 0 2 0 1

1 2 1 2 0

0 2 2 0 2

2 1 1 2 2

0 2 1 2 0

 

Output

Case #1

3

Case #2

4



50
7
2 1 2 2 0
0 2 2 0 0
2 0 2 1 0
0 0 2 1 2
0 2 1 0 2
1 2 1 0 2
1 1 2 0 2
5
0 0 1 0 0
1 2 1 0 2
2 2 0 0 1
2 1 2 1 0
2 1 2 0 2
9
2 2 2 2 2
0 0 0 0 0
0 0 0 0 0
1 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
2 2 2 2 0
6
2 2 2 2 2
0 0 0 0 0
0 0 2 0 0
2 0 0 0 2
0 0 0 0 0
1 2 2 2 1
10
1 0 1 0 1
2 2 2 2 1
0 2 2 0 2
2 0 2 1 1
2 0 2 2 0
0 2 2 1 1
2 0 2 1 2
2 1 1 2 2
1 1 2 2 2
2 1 0 1 0
9
2 0 1 1 1
0 1 0 1 2
0 1 0 2 2
0 0 0 2 1
2 0 1 0 1
0 0 2 0 2
1 0 0 2 2
2 0 0 1 1
2 0 0 0 0
7
1 2 0 1 0
0 1 2 1 2
2 0 0 0 0
2 2 1 1 2
0 0 2 0 2
0 1 0 1 1
2 1 2 0 2
8
1 2 1 1 2
1 1 2 0 0
2 1 1 2 1
1 2 1 2 0
0 0 2 2 1
1 0 2 0 0
1 2 1 2 0
0 0 2 0 1
12
2 2 2 1 0
1 2 0 0 2
1 0 1 0 1
2 1 2 1 1
1 2 2 1 2
2 2 1 0 1
2 0 1 1 0
0 2 1 0 2
1 2 2 1 2
2 2 1 2 0
1 0 2 0 1
0 0 0 1 0
12
0 0 2 2 0
2 0 0 1 2
0 1 1 2 2
0 0 1 0 2
0 2 2 0 2
1 0 2 2 0
2 2 2 2 1
1 0 1 2 2
2 1 0 1 1
1 0 1 1 0
2 2 1 1 2
0 0 1 0 2
5
1 1 0 0 0
1 2 2 2 1
1 1 2 2 1
2 2 2 1 2
2 2 0 2 0
12
2 1 2 2 2
0 2 2 1 0
0 0 1 0 1
0 1 0 2 0
2 0 0 0 0
0 1 1 0 1
0 1 0 2 2
1 1 0 2 2
2 2 1 2 2
2 0 1 0 2
1 2 1 2 0
2 0 1 1 1
11
1 1 0 0 2
0 1 1 2 2
1 0 0 1 2
2 0 1 1 2
0 0 0 2 0
2 1 2 2 0
2 1 0 2 0
1 1 2 2 1
1 2 0 0 0
2 1 0 0 2
0 0 0 2 1
8
0 0 2 2 2
2 1 1 2 2
2 0 1 1 1
1 1 2 0 0
0 0 2 0 1
0 2 0 0 1
1 1 1 2 0
0 2 0 1 2
9
1 0 0 0 0
2 2 1 1 2
0 1 1 0 0
1 2 0 2 0
1 1 1 0 0
2 1 1 0 1
0 0 1 1 1
2 1 0 0 0
0 1 2 2 1
10
2 2 2 2 2
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
2 2 2 2 0
12
1 0 1 0 1
1 1 1 0 1
0 2 0 2 0
2 0 1 0 0
0 1 2 1 0
1 2 0 1 0
0 1 1 0 2
0 1 1 1 1
0 2 0 1 0
0 0 0 1 2
1 0 0 2 2
0 0 2 0 2
12
0 2 2 0 2
0 2 0 0 0
2 0 1 2 0
0 1 1 2 1
1 2 2 2 0
1 2 1 1 2
2 0 2 1 2
2 1 1 1 0
1 0 0 1 1
2 1 0 1 2
2 1 0 1 1
1 0 2 2 0
9
0 1 1 1 1
1 0 2 0 2
2 2 2 2 1
1 0 0 0 2
1 0 2 2 1
2 1 0 1 2
1 1 0 2 1
2 2 0 0 1
1 1 0 2 0
9
1 1 0 2 0
2 2 0 2 0
1 1 0 1 0
2 0 1 1 0
1 0 1 1 2
0 0 2 1 0
2 0 2 2 1
2 0 1 1 2
2 0 2 0 0
8
2 1 1 1 0
2 1 2 2 1
0 1 0 0 2
0 1 1 0 1
2 0 0 0 2
2 0 1 1 1
0 0 1 1 0
1 1 0 0 0
10
2 0 2 2 2
0 1 0 2 1
0 0 2 1 1
1 0 1 0 1
2 0 0 0 2
0 2 2 0 2
1 1 0 2 2
0 0 1 0 1
1 1 2 0 2
0 1 0 2 0
8
1 2 1 1 1
2 1 2 1 1
1 2 0 2 2
2 0 1 0 0
1 1 2 2 0
1 0 1 2 1
1 2 0 1 2
1 2 0 0 1
10
2 1 0 0 2
2 0 0 0 1
2 1 2 2 0
0 1 0 0 1
0 2 2 2 1
2 1 0 0 0
2 0 2 1 2
2 1 2 1 2
2 0 2 0 2
1 0 2 2 1
8
2 0 2 0 2
1 0 1 2 0
0 0 0 2 1
2 0 2 0 1
1 2 1 2 0
0 2 2 0 2
2 1 1 2 2
0 2 1 2 0
8
1 1 1 2 2
1 1 1 1 2
2 1 2 2 0
2 0 0 2 2
1 0 0 0 2
1 0 2 0 2
2 0 2 0 2
0 2 0 0 1
9
1 2 2 0 2
2 0 2 1 2
1 0 1 2 1
1 0 2 1 1
2 0 1 2 1
1 2 2 0 2
0 2 0 1 0
1 0 2 2 2
2 0 2 0 1
12
1 0 1 2 1
0 2 2 1 0
0 0 2 1 0
1 1 1 1 1
2 0 2 0 0
1 2 1 2 1
0 0 0 1 2
1 1 1 1 0
2 0 2 2 1
0 0 0 2 0
1 0 2 2 2
0 1 1 1 0
8
1 0 0 2 2
2 0 1 1 0
0 0 1 2 2
1 0 1 0 0
1 1 1 0 2
1 0 1 2 0
2 2 0 2 1
0 1 2 1 0
8
2 0 0 0 0
0 0 0 1 0
2 1 0 1 2
1 2 0 0 2
1 2 1 0 1
0 2 1 1 2
1 2 0 2 2
1 1 2 2 0
7
1 0 2 0 1
0 0 1 2 1
2 1 1 2 2
1 0 2 0 1
2 2 1 2 2
0 0 1 0 2
0 0 2 2 0
9
2 2 2 0 1
2 2 0 2 1
1 0 0 2 1
2 2 2 0 1
2 2 0 0 2
1 0 2 1 1
1 2 1 1 2
0 0 2 2 0
2 0 0 0 2
8
1 1 1 0 1
0 1 1 1 2
2 1 1 0 1
2 2 0 0 2
1 1 0 0 2
2 2 0 2 1
2 0 1 1 2
2 0 1 0 0
8
0 2 2 1 1
1 2 1 0 1
0 0 2 2 0
1 0 1 1 1
0 2 0 0 1
0 2 0 1 2
1 0 0 1 1
1 0 2 0 0
12
2 2 2 2 2
2 2 2 1 2
2 1 1 0 0
2 2 2 1 2
2 2 1 0 2
0 0 0 1 1
1 0 0 1 1
0 0 1 1 0
0 1 0 2 1
1 1 1 0 2
0 0 2 1 0
2 0 2 2 2
10
1 0 2 1 2
1 2 1 0 1
1 0 0 1 1
1 1 1 1 1
1 2 1 0 0
1 1 1 2 2
0 1 2 1 1
0 0 0 1 2
1 2 0 1 2
2 1 0 1 0
11
1 0 0 0 2
2 2 0 1 2
1 2 1 0 2
1 1 0 1 0
0 2 1 0 1
2 0 0 1 2
1 0 1 0 2
0 1 1 2 0
1 0 0 0 0
0 2 0 2 1
2 2 0 2 1
9
1 0 1 2 2
2 2 1 1 1
0 0 0 1 0
0 0 0 2 0
2 1 0 1 0
2 0 2 2 1
2 2 1 1 2
1 0 0 1 1
1 1 1 1 2
9
0 0 1 2 2
0 2 0 1 0
2 0 2 2 1
2 2 2 1 1
2 2 2 1 0
0 1 0 2 1
2 1 1 1 1
0 1 0 2 1
2 1 2 2 1
7
0 1 0 1 2
2 0 1 2 1
0 2 2 1 1
1 1 0 0 0
1 0 1 1 1
1 0 2 1 1
2 0 2 0 2
12
0 1 1 0 1
0 2 0 2 2
1 0 0 1 2
2 1 1 1 0
0 2 0 0 1
0 2 1 2 2
2 2 1 1 1
0 1 2 1 0
0 0 1 1 0
2 2 0 1 2
1 1 1 1 2
0 0 1 1 1
10
1 1 2 2 1
2 1 2 2 0
2 2 1 0 0
0 1 2 2 0
1 0 2 0 1
1 2 2 0 2
0 0 0 1 2
1 2 2 1 0
1 0 1 2 2
1 2 1 1 0
11
1 2 0 0 1
2 1 1 0 2
1 2 0 2 2
1 2 0 1 1
2 0 2 2 0
1 2 1 2 1
1 0 0 0 1
0 0 1 1 2
1 0 1 0 2
1 1 2 0 2
2 0 0 2 2
9
0 1 2 2 2
2 2 2 1 1
2 2 1 1 1
1 2 2 2 1
2 1 2 2 2
0 1 2 2 0
0 0 0 0 0
2 1 1 0 1
1 2 2 1 1
11
1 2 1 0 1
0 2 1 1 2
1 0 0 1 1
2 2 0 0 1
1 0 0 2 2
1 2 1 2 0
1 1 0 0 2
2 0 1 2 2
1 2 2 1 1
1 1 1 2 1
2 1 0 0 0
8
1 2 1 2 1
1 1 0 0 2
2 2 2 2 1
1 1 0 0 2
1 2 1 1 2
0 1 1 1 2
0 0 0 1 0
1 2 2 1 0
8
1 0 1 1 1
1 0 2 0 0
2 2 0 1 2
1 0 0 0 2
0 2 0 1 2
2 1 2 0 1
2 2 2 2 0
1 2 2 1 2
8
1 0 2 1 0
0 2 1 0 2
2 0 0 0 1
0 0 2 2 0
1 2 1 0 2
0 1 1 1 1
1 2 1 2 1
2 0 0 1 2
9
1 2 1 0 2
2 2 2 1 1
2 1 1 2 1
1 2 1 0 2
1 2 1 1 0
1 1 1 2 2
0 1 0 2 0
0 0 0 0 0
1 2 0 0 1
8
2 2 0 0 1
2 1 2 2 1
0 0 0 1 1
0 2 1 1 0
0 2 2 1 1
1 0 0 0 2
2 1 2 2 1
1 1 2 0 0



import java.util.Scanner;

public class Solution {

	static int t,n,re;
	static int[][] a;
	static int[][] visited;
	static int[] dy = {-1, 0 , 1};
	static boolean hasTrue;
	static boolean hasBoom;
	
	public static void main(String[] args) {

		Scanner sc = new Scanner(System.in);
		
		t =sc.nextInt();
		for (int i = 0; i < t; i++) {
			hasTrue = false;
			hasBoom = true;
			re = 0;
			n = sc.nextInt();
			a = new int[n][5];
			visited = new int[n][5];
			
			for (int j = 0; j < n; j++) {
				for (int k = 0; k < 5; k++) {
					a[j][k] =sc.nextInt();

				}

			}
			fun(n-1,2,0);
			System.out.println("Case #" + (i+1));
			if(hasTrue) {
				System.out.println(re);
			}
			else {
				System.out.println(-1);
			}
//			boom(3);
//			for (int j = 0; j < n; j++) {
//				for (int k = 0; k < 5; k++) {
//					System.out.print(a[j][k] + " ");
//				}
//				System.out.println();
//			}
//			unboom(3);
//			for (int j = 0; j < n; j++) {
//				for (int k = 0; k < 5; k++) {
//					System.out.print(a[j][k] + " ");
//				}
//				System.out.println();
//			}
		}
		
	}
	public static void fun(int i, int j, int score) {
		if(score <0) {
			return;
		}
		if( i == -1) {
			hasTrue = true;
			if(re < score)
				re = score;
			
		}
		else {
			if(hasBoom) {
				hasBoom = false;
				boom(i);
				fun(i, j,score);
				unboom(i);
				hasBoom = true;
			}
			//di chuyen
			for (int k = 0; k < 3; k++) {
				int y = dy[k] + j;
				if(y >= 0 && y < 5) {
					visited[i][y] = 1;
					//keo map len
					if(a[i][y] == 2) {
						
						fun(i-1, y,score - 1);
						
						
					}else if(a[i][y] == 1) {
						//System.out.println("i" + i + " y" + y);
						fun(i-1, y,score + 1);
					}else {
						fun(i-1, y,score);
					}
					
					
				}
			}
		}
			
		
	}
	
	static void boom(int i) {
		int st = i-4 <= 0? 0: i - 4;
		for (int j = st; j <= i; j++) {
			for (int k = 0; k < 5; k++) {
				if(a[j][k] == 2) {
					a[j][k] = -1;
				}
			}
		}
	}
	
	static void unboom(int i) {
		int st = i-4 <= 0? 0: i - 4;
		for (int j = st; j <= i; j++) {
			for (int k = 0; k < 5; k++) {
				if(a[j][k] == -1) {
					a[j][k] = 2;
				}
			}
		}
	}
}
Leave a Comment