Проблема 415: Титанические наборы
Множество точек решетки S называется титаническим множеством, если существует прямая, проходящая через ровно две точки из S.
Примером титанического множества является S = {(0, 0), (0, 1), (0, 2), (1, 1), (2, 0), (1, 0)}, где прямая проходящие через (0, 1) и (2, 0), не проходят через любую другую точку из S.
С другой стороны, множество {(0, 0), (1, 1), (2, 2), (4, 4)} не является титаническим множеством, так как линия, проходящая через любые две точки множества, также проходит через два других.
Для любого натурального N пусть T (N) - число титанических множеств S, каждая точка (x, y) удовлетворяет 0 ≤ x, y ≤ N. Можно проверить, что T (1) = 11, T (2 ) = 494, T (4) = 33554178, T (111) mod 108 = 13500401 и T (105) mod 108 = 63259062.
Найдите T (1011) mod 108.