Алгоритм очевиден:
TryP(i) пытается
i < maxn: подставить число от 1 до 4 в ячейку ответа ans[i], предварительно проверяя, не возникает ли противоречие, в каждом случае отсутствия противоречия переходит в TryP(i+1)
i = maxn: противоречий нет, и мы заполнили массив ответа. Выводим ans и вырубаемся (можно было exit(0), но для наглядности, что алгоритм в случае 58 прошел все варианты и умер, я сделала вывод DONE)
Теперь понятно. Но я подумал тут вот о чём. Ведь если мы сформировали уже группу из каких-то

чисел, среди которых нет противоречий, и добавляем

число. Оно вызывает противоречие. Тогда мы пробуем следующую и следующую группу и так далее. Допустим оно не подошло не в одну.
Пусть в первой группе это число

, которое вступило в противоречие с числом

, т.к.

. Но тогда ведь сохраняется возможность без потери решения перенести число

в какую-нибудь группу (поменять на другое число, которое уже не будет с числом

давать противоречий) - без потери общности, и таким образом, число

добавится.
Кроме того, может возникнуть ситуация, когда и число

не удастся поменять ни с одной группой, т.к. оно тоже даст противоречия с одним или несколькими числами, которые так же потребуется переносить. Но в конце концов, такая "пересортировка" всё же сможет дать желаемый результат. И таких возможностей может быть очень и очень много. Вот я и подумал, учитывает ли ваш алгоритм это?
P.S.
За магии спасибо! Улыбнуло.

Особенно, что решается "только человеком по имени Сергей Копелиович".

Задача 3 особенно интересна. Но к ней можно вернуться после того, как одолеть эту.
-- Сб мар 12, 2011 19:52:38 --Попробовал найти доказательство для некоторого

, используя доказательство Ксении для трёх групп. Её доказательство начинает "работать" с

.
На 3 подмножества разбить нельзя.
Для каждого

числа n и n+7 обязаны находиться в одном и том же подмножестве. Почему? Возьмём числа

. Ясно, что n-9, n и n+16 должны принадлежать трём разным подмножествам. Точно так же n-9, n+7 и n+16 должны принадлежать трём разным подмножествам. Следовательно, n и n+7 будут вместе. Тогда числа 10, 17, 24, ... 59 должны быть вместе, но 59-10=49 является квадратом. Противоречие.
Для того, чтобы применить подобное для 4-х групп и построить ограничение, начиная с некоторого

необходимо чтобы имела решение некоторая система:

в целых числах.
Эта задача очень похожа на поиск рационального кубоида. я попытался решить её, у меня получились очень жёсткие (практически нереальные) условия на

. Которые с трудом верится, что можно выполнить. Хотя такая возможность не исключена. Но учитывая то, что отдельные множители в данном случае из которых затем "строятся"

или

. Представляют собой суммы 4-х квадратов, и на них ещё задаются доп.условия, то в ближайших 10000 такое решение навряд ли существует. А значит и

, начиная с которого разбиение на 4 группы невозможно - достаточно велико.