Восстановить игру в слова

два друга играют в слова. на вход в программу подается количество слов, которое сказал каждый из них. затем по порядку подаются слова (сначала по порядку те, которые сказал первый, затем те, которые сказал второй). Напишите программу на c#, которая восстановит и выведет в консоль порядок, в котором эти слова были сказаны в игре (слово первого, слово второго, опять слово первого и т д). Слова могут быть даны не в том порядке, в котором они сказаны в игре.

Подскажите как решать или в какую сторону думать. (пытался объединять по парам и складывать, пытался делать полный перебор вариантов(не придумал алгоритм)


Ответы (1 шт):

Автор решения: Qwertiy

Если бы был просто набор слов

Граф. Вершины - буквы. Рёбра (ориентированные) - слова. Найти эйлеров путь.

Когда слова разделены по игрокам

Двудольный граф. Вершины каждой из долей - буквы. Слово первого является ребром из первой доли во вторую, второго - в обратную сторону. Найти эйлеров путь, начинающийся в первой доли.

→ Ссылка