## What will I learn?

In this puzzle you first have to program a pathfinding algorithm.

Then you compute the list of all possible actions and extrapolate future possibilities.

You combine the two previous algorithms using complex data structure like a graph of nodes.

You have to optimize your algorithm to reduce the number of combinations in order to decrease the computation time of your program.

## LEARN ALGORITHMS ASSOCIATED WITH THIS PUZZLE

Shortest paths with Dijkstra’s Algorithm by RacsoA Depth-First Search Algorithm to Outmaneuver Skynet Robots by Donotalo

#### External resources

Graph TheoryTreeTree traversalDepth First SearchBacktrackingDijkstraA*## Learning Opportunities

This puzzle can be solved using the following concepts. Practice using these concepts and improve your skills.

## Statement

This problem plays out on a graph where a “virus” moves from nodes to nodes, looking for an exit. There are several exits and you have to cut access to these exits by finding the best link to cut each turn, from the limited amount of cutable links. You will manage complex data structure like a tree where all nodes can store a graph.

A higher resolution is required to access the IDE

## Story

The Bobnet network is still active, although the Resistance's virus is spreading. Help the virus spread by cutting out Bobnet's resources. The fate of Humanity depends on you.

*This difficult puzzle is the second of the two exercises proposed for the challenge « Skynet Finale ». Before you solve it, get started with the previous level, « Death First Search - Episode 1 », an easier version of this puzzle.*