Create a gist now

Instantly share code, notes, and snippets.

What would you like to do?
Calculate the number of possible draws in the draw for the round of 16 in the 2012–13 UEFA Champions League; see http://math.stackexchange.com/questions/262629.
public class Question262629 {
final static String [] [] associations =
{
{"FRA","GER","SPA","GER","ITA","GER","SPA","ENG"},
{"POR","ENG","ITA","SPA","UKR","SPA","SCO","TUR"}
};
static int count;
static boolean [] paired = new boolean [8];
public static void main (String [] args) {
recurse (0);
System.out.println (count);
}
static void recurse (int n) {
if (n == 8)
count++;
else
for (int i = 0;i < 8;i++)
if (i != n && !paired [i] && !associations [0] [n].equals (associations [1] [i])) {
paired [i] = true;
recurse (n + 1);
paired [i] = false;
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment