Игра в города |
Условие задачи: Всем известны правила игры "в города": первый игрок называет произвольный город, следующий - город, название которого начинается на ту же букву, на которую заканчивается название предыдущего города, и т.д. Аналогичным образом можно играть не в названия городов, а, например, в названия животных. Задан список допустимых для описанной игры слов, слова в нём могут повторяться. Напишите программу, определяющую, в каком порядке в процессе игры должны быть названы слова из списка, чтобы каждое слово было использовано ровно столько раз, сколько оно в нём встречается.
Решение: Очень простая идея. Это перебор 0 и 1 в n-значном числе. Т. е. если мы натыкаемся на 0, то данное слово мы не берём в последовательность, если 1, то берём. Получив некую последовательность проверяем на то, что есть ли такие слова, которые начинаются на ту букву, на которую некоторые заканчиваются. Затем ты записываем в двумерный массив в первый столбец количество слов, а затем в остальные столбцы последовательность слов. Потом просто находим строчку с максимальным значением слов и выдаём эту последовательность. while (true) do begin inc(p[1]); for i:=1 to n do if p[i]>1 then begin inc(p[i+1]); p[i]:=0; end; {---} if p[n+1]=1 then break; end; - пример перебора нолей и единиц. Вместо {---} вставьте текст программы. |
|
Статистика |
|
Поиск |
Часы |