Thanks, Solomon, for setting up the contest!
Some thoughts about the problems:
Problem A: Viewing the people as vertices of a graph, with an edge connecting those whose paths cross, the problem is to find the maximal length of a clique. My first tries did that without taking the special form of the graph into account, and thus were too slow. After Solomon's post with a pointer to some paper on this problem for circle graphs I thought about it some more and realized that in the situation at hand, we have what's called a permutation graph, and that once the corresponding permutation has been found, finding cliques just amounts to finding maximal decreasing sequences in the sequence of values. It turns that both these things are easily accomplished (less than
20 lines of Python code, not counting comments and blank lines), so in the end I was quite happy with the solution.
Problem B: Was relatively easy for me (profiting, it seems, from the fact, that Python works with arbitrary large integers out of the box).
Problem E: My solution is quite straightforward - apply some easy heuristics first, and then do backtracking. Fortunately it is fast enough for the given test cases. I tested it on some 14x14 problem I found on the net, and had to interrupt it after a couple of minutes ...
Best, Ulrich