2 rounds
Round 1: The aim is to solve a problem by abstracting it into an doubly recursive algorithm. Solutions can be represented either diagrammatically or as recursive functions or by any means the teams or comfortable using including clear and lucid English prose. A solution is one that makes sense, in part at the least. Exchange of ideas between competing teams allowed.
Round 2:
Proving that the given solution works. Proof can be either mathematical or by brute force. All methods carry equal weights. Modification of partially correct algorithms from Round 1 allowed. Exchange of ideas between competing teams allowed. Collaboration between two teams is also allowed on the precondition that the reward and/or credit be shared between the two.