Je schrijft een programma om te toetsen of een graaf met \(V=\{0,\dotsc,n−1\}\), waarbij \(n \leq 64\), een hamiltoniaanse cykel heeft. Je stelt daarbij verzamelingen als bitsets met één unsigned long int voor (met 64 bit). Je begint met een pad van lengte 1 en probeert dat uit te breiden tot een cykel. Als bounding criterium toets je of elke top die nog niet in het pad zit nog met twee toppen verbonden kan worden – dus ten minste twee buren heeft die niet graad 2 in het al opgebouwde pad hebben. Daarvoor gebruik je de volgende bitsets:

Dit algoritme is al geïmplementeerd in de abstracte klasse HamiltonianCycle1. Implementeer de abstracte methodes zo efficiënt mogelijk in een klasse genaamd MyHamiltonianCycle.

Gebruik eventueel de testklasse SimpleTest2 om je oplossing lokaal te testen.