// // explores colour classes oldest first // within colour class, oldest vertex first // import java.util.*; class MCY extends MCX { MCY (int n,int[][]A,int[] degree,int style) { super(n,A,degree,style); } void expand(ArrayList C,ArrayList P){ if (timeLimit > 0 && System.currentTimeMillis() - cpuTime >= timeLimit) return; nodes++; ArrayList> colourClasses = colourSort(C,P); int m = colourClasses.size(); for (int i=0;m + C.size() > maxSize;i++){ ArrayList colourClass = colourClasses.get(m-1); for (int j=0;j newP = new ArrayList(); for (int k=0;k maxSize) saveSolution(C); if (!newP.isEmpty()) expand(C,newP); C.remove((Integer) v); } m--; } } }