Untitled
unknown
plain_text
2 years ago
1.4 kB
13
Indexable
import java.io.FileInputStream;
import java.util.Scanner;
public class Main {
static {
try {
System.setIn(new FileInputStream("src/inp.txt"));
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
static Scanner scanner = new Scanner(System.in);
static int dir[][]={{0,1},{1,0}},res;
static void bt(int[][] a,boolean[][] vis,boolean[][]vis2,int x,int y) {
if(x==7) {
++res;
return;
}
if(!vis[x][y]) {
for(int i=0;i<2;++i) {
int nx=x+dir[i][0],ny=y+dir[i][1];
if(nx>=0 && nx<7 && ny>=0 && ny<8 && !vis[nx][ny]) {
vis[x][y]=vis[nx][ny]=true;
int min=Math.min(a[x][y],a[nx][ny]);
int max=Math.max(a[x][y],a[nx][ny]);
if(!vis2[min][max]) {
vis2[min][max]=true;
bt(a,vis,vis2,x,y);
vis2[min][max]=false;
}
vis[x][y]=vis[nx][ny]=false;
}
}
}
else if(y+1<8)
bt(a,vis,vis2,x,y+1);
else
bt(a,vis,vis2,x+1,0);
}
public static void main(String[] args) {
int t=Integer.parseInt(scanner.next());
for(int test=1;test<=t;++test) {
int[][]a=new int[7][8];
for(int i=0;i<7;++i) for(int j=0;j<8;++j)
a[i][j]=Integer.parseInt(scanner.next());
res=0;
bt(a,new boolean[7][8],new boolean[7][7],0,0);
System.out.printf("Case #%d\n%d\n",test,res);
}
scanner.close();
}
}
Editor is loading...