import java.io.*; import java.util.*; import java.text.*; import java.math.*; import java.util.regex.*; public class Solution { private static int[] myArray; private static int combos = 0; private static int numberOfCases; private static int numberOfHouses; private static int numberOfGirls; public static void boundaryChecking() { boolean casesOver = (numberOfCases < 1) || (numberOfCases > 10); boolean housesOver = (numberOfHouses < 1) || (numberOfHouses > 10); boolean girlsOver = (numberOfGirls < 1) || (numberOfGirls > 10); if(casesOver || housesOver || girlsOver) { System.out.println("Boundary exit"); System.exit(1); } } public static void populate(int[] arrayInput) { arrayInput = new int[numberOfHouses]; for(int i = 0; i < numberOfHouses; i++) { arrayInput[i] = 0; } } public static void combinations() { int counter = 1; for(int i = 0; i < numberOfHouses; i++) { myArray = new int[numberOfHouses]; populate(myArray); myArray[i] = 1; for(int s1 = i + 2; s1 < numberOfHouses; s1++) { int[] temp1 = new int[numberOfHouses]; populate(temp1); for(int j = 0; j < myArray.length; j++) { temp1[i] = myArray[i]; } if(((s1 + 1) < numberOfHouses) && ((s1+1) != 1) && ((s1-1) != 1)) { temp1[s1+1] = 1; // System.out.print(i + " " + s1 + " s1: "); // print(temp1); if(counter == numberOfGirls) { combos++; break; } } int[] temp2 = new int[numberOfHouses]; populate(temp2); for(int j = 0; j < myArray.length; j++) { temp2[i] = temp1[i]; } for(int s2 = i + 4; s2 < numberOfHouses; s2++) { if(((s2 + 1) < numberOfHouses) && ((s2+1) != 1) && ((s2-1) != 1)) { temp2[s2+1] = 1; // System.out.print(i + " " + s1 + " " + s2 + " s2: "); // print(temp2); if(counter == numberOfGirls) { combos++; break; } } int[] temp3 = new int[numberOfHouses]; populate(temp3); for(int j = 0; j < myArray.length; j++) { temp3[i] = temp2[i]; } for(int s3 = i + 3; s3 < numberOfHouses; s3++) { if(((s3 + 1) < numberOfHouses) && ((s3+1) != 1) && ((s3-1) != 1)) { temp3[s3+1] = 1; // System.out.print(i + " " + s1 + " " + s2 + " " + s3 + " s3: "); // print(temp3); if(counter == numberOfGirls) { combos++; break; } } } } } } } public static void print(int[] printArray) { System.out.print("{ "); for(int i = 0; i < numberOfHouses; i++) { System.out.print(printArray[i] + " "); } System.out.println("}"); } public static void main(String[] args) { /* Enter your code here. Read input from STDIN. Print output to STDOUT. * Your class should be named Solution. */ Scanner kbd = new Scanner(System.in); String lines = kbd.nextLine(); numberOfCases = Integer.parseInt(lines); for(int i = 0; i < numberOfCases; i++) { String input = kbd.nextLine(); String[] inputArray = input.split(" "); numberOfHouses = Integer.parseInt(inputArray[0]); numberOfGirls = Integer.parseInt(inputArray[1]); boundaryChecking(); populate(myArray); combinations(); System.out.println(combos); } } }