- 21, Oct 2024
- #1
По городу идет парад! Есть 3 основные группы участников марша: (B) и, держатели плаката (C) и (F) держатели отставания. Кроме того, каждый (П)полицейский во всем городе находится на дежурстве.
Владельцы флага (F) могут маршировать в любом месте парада, но два держателя флага не могут маршировать рядом друг с другом, если только три или более держателей флага не собираются вместе.
Группа (B) должна быть вместе. Все носители плакатов (С) должны находиться за лентой (либо вместе, либо двумя группами).
Учитывая количество держателей флагов, носителей плакатов, участников оркестра и полицейских, разделенных выбранным вами разделителем, выведите по одной строке для каждой возможной конфигурации, расположенной в алфавитном порядке.
Тестовый пример 1:
Input: 2 2 2 1 Output: CCBBFPF CCFBBFP CCFBBPF CCFPBBF CCFPFBB CCPFBBF CFCBBFP CFCBBPF CFCFBBP CFCFPBB CFCPBBF CFCPFBB CFPCBBF CFPCFBB CFPFCBB CPCFBBF CPFCBBF CPFCFBB FCCBBFP FCCBBPF FCCFBBP FCCFPBB FCCPBBF FCCPFBB FCFCBBP FCFCPBB FCFPCBB FCPCBBF FCPCFBB FCPFCBB FPCCBBF FPCCFBB FPCFCBB FPFCCBB PCCFBBF PCFCBBF PCFCFBB PFCCBBF PFCCFBB PFCFCBB
Тестовый пример 2:
Input:
3 3 3 0
Output:
CCCBBBFFF
CCCFFFBBB
CCFCFBBBF
CCFFFCBBB
CFCCFBBBF
CFCFCBBBF
CFFFCCBBB
FCCCFBBBF
FCCFCBBBF
FCFCCBBBF
FCFCFCBBB
FFFCCCBBB
Тестовый пример 3:
Input:
2 2 2 0
Output:
CCFBBF
CFCBBF
CFCFBB
FCCBBF
FCCFBB
FCFCBB
Это код-гольф, поэтому побеждает самый короткий исходный код в байтах.
*Примечание. Не учитывается, если выполнение каждого тестового примера занимает более 3 секунд. Я не буду использовать целые числа больше 20.
#код-гольф #комбинаторика #перестановки