package 蓝桥杯题目;
//从12个点中随机选5个,判断是不是连通块
import java.util.*;
public class 剪邮票 {
static int sum=0;
static int[] x= {-1,1,0,0};
static int[] y= {0,0,-1,1};
//判断连通块
public static void dfs(int[][] arr,boolean[][] vis,int i,int j) {
for(int a=0;a<4;a++) {
int newx=i+x[a];
int newy=j+y[a];
if(newx>=0&&newx<3&&newy>=0&&newy<4&&arr[newx][newy]==1&&vis[newx][newy]==false) {
vis[newx][newy]=true;
dfs(arr,vis,newx,newy);
}
}
}
public static void main(String[] args) {
int[][] arr=new int[3][4];
for(int a=0;a<12;a++) {
for(int b=a+1;b<12;b++) {
if(b!=a)
for(int c=b+1;c<12;c++) {
if(c!=a&&c!=b)
for(int d=c+1;d<12;d++) {
if(d!=a&&d!=b&&d!=c)
for(int e=d+1;e<12;e++) {
if(e!=d&&e!=c&&e!=b&&e!=a) {
arr[a/4][a%4]=1;
arr[b/4][b%4]=1;
arr[c/4][c%4]=1;
arr[d/4][d%4]=1;
arr[e/4][e%4]=1;
//调用函数
boolean[][] vis=new boolean[3][4];
int t=0;
for(int i=0;i<3;i++) {
for(int j=0;j<4;j++) {
if(arr[i][j]==1&&vis[i][j]==false) {
vis[i][j]=true;
t++;
dfs(arr,vis,i,j);
}
}
}
if(t==1) {
sum++;
}
}
arr[e/4][e%4]=0;
}
arr[d/4][d%4]=0;
}
arr[c/4][c%4]=0;
}
arr[b/4][b%4]=0;
}
arr[a/4][a%4]=0;
}
System.out.println(sum);
}
}