Substitution Cipher is problem number 1506 on the Peking University ACM site.
- Turn the input into a list of "e<b" style rules.
- Construct a graph from these rules.
- If graph has a cycle, or is disconnected, you can't do it
- Else, it's a connected DAG.
- Topological sort. Boom.