Составляем таблицу. В строках расположим воинские звания, в столбцах расположим специальности.
Если сочетания "звание - специальность" не может быть, то соответствующую ячейку закрашиваем.
Рассматриваем первый тур. Так как каждый играл только один раз, то каждое сочетание "звание - специальность" из перечисленных в первом туре необходимо закрасить. По итогам первого тура никого из участников явно выделить не удалось.
Рассматриваем информацию про капитана. Так как он выбыл, то каждый из играющих в следующих турах не может быть капитаном. Также не может быть игроком отдыхающий в соответствующем туре, во втором туре - минометчик, в третьем туре - рядовой.
Рассматриваем второй тур. Аналогично первому туру, закрашиваем сочетания из перечисленных сведений, а также учитывая информацию про капитана и отдыхающего. Явные игроки не выявлены.
Рассматриваем третий тур. Аналогично первому и второму туру.
Явно определены следующие участники:
1) Лейтенант - связист
2) Прапорщик - минометчик
Вычеркиваем эти два столбца и две строки.
Определен следующий участник:
3) Сержант - десантник
Вычеркиваем соответствующий столбец и строку.
Следующий участник:
4) Полковник - ракетчик
Вычеркиваем соответствующий столбец и строку.
Следующие участники:
5) Майор - артиллерист
6) Капитан - летчик
Остается набор "ефрейтор", "рядовой", "пехотинец", "танкист". Обращаем внимание, что рядовой не участвовал в третьем туре, а танкист - в шестом (это условие можно было отметить в таблице на предыдущих шагах). Значит, рядовой - не танкист, тогда последние участники:
7) Рядовой - пехотинец
8) Ефрейтор - танкист