Keyboard Knights of Acacia

Are you ready for a challenge?

Complete this puzzle and show us that you’re ready for world-class work. If your solution shows true talent, you may get an opportunity to join our team.

We want to see how you approach solving problems with the C++ language, or your preferred programming language.

It is essential that the outcome provides a correct solution to the problem, but of course there are many ways to correctly solve the problem.

Your challenge

Calculate the total number of valid 10-key sequences, given these constraints:

  • sequences can start at any key
  • each subsequent move must be a knight move
  • no more than 2 vowels per sequence
  • repeat keys are allowed
  • no topological wrapping of keyboard
For example, BKHOHKBILC is one of the many valid 10-key sequences that meets all the constraints.
Your challenge is to write a program that prints the total number of valid sequences.

Keyboard layout:

How to submit your solution

  • Acacia’s preferred language is C++. Please:
    • Use a single .cpp file with compilation command (either GCC or clang) in a comment at the top of the file
    • Compile with -Wpedantic and as recent a version of C++ as you like, e.g., -std=c++23
  • Write simple code that is ready to be peer reviewed
  • Please include the following in your covering email:
    • Your full name and a mobile phone contact number.
    • Your current citizenship or visa status, e.g., Australian Citizen, Australian Permanent Resident, Temporary work visa etc.
    • An argument, about one paragraph long, describing why your code is correct and fit for peer review.
  • Submit your code below