Для решения данной задачи можно использовать теорию графов. Давайте представим каждого ребенка как вершину графа, а дружбу между детьми как ребра. Тогда каждая команда будет представлять собой связный подграф, где все вершины связаны между собой.
Известно, что в связном графе количество ребер равно количество вершин минус один. Поэтому чтобы максимизировать количество команд, нужно разделить детей на команды таким образом, чтобы каждая команда имела минимальное количество вершин.
Таким образом, чтобы у каждого ребенка были все его друзья в команде, необходимо, чтобы все дети в одной команде были связаны друг с другом. Это означает, что каждая команда должна представлять собой клику (полный подграф).
Таким образом, максимальное количество команд будет равно количеству детей, которые образуют наибольшую клику в данном графе.
По информации о том, кто с кем дружит, можно определить наибольшую клику в графе и, соответственно, максимальное количество команд.