3) When each function saves the visited vertex, there is the vertex that only the first function visited, the vertex that only the second function visited, and the vertex at which both functions visited.

4) Multiply the number of vertices only the first function visited by the number of vertices only the second function visited, and it's the answer.

In your example, the pair (2, 3) will not count towards the solution. The problem states that for a pair (U, V) to count towards the solution, every way to get from city U to city V or from V to U must go through A and B. If there exists a path between them that does NOT go through both A and B, then it does not count towards the solution.

In your example, there exists a path from 2 to 3 that does NOT go through A and B, thus it does not count towards the solution.

The only "valid" pairs in your example would be (X1, Y) and (X2, Y). Answer = 2;

In the editorial of question D: Let's Play The Words? Why do we need to reverse $$$n_{01} - n_{10} - 1$$$ strings and not $$$(n_{01} - n_{10}) / 2$$$. Also, can anyone give hints on how to prove that the problem is equivalent to "the Euler traversal of a directed graph with 2 nodes"? Thanks!