Регистрация
Войти
Стать экспертом Правила
Информатика

Пожалуйста посчитайте пожалуйста, а то я не уверена!! В очереди стоят мальчики и девочки. В начале каждой минуты, если за каким-то мальчиком стоит девочка, то он меняется с ней местами, пропуская ее вперед (при этом общее количество ребят в очереди не меняется).Вам дана очередь в виде последовательности букв M и D (начало очереди слева), определите, как она будет выглядеть через 9 минут.DMMDMDMDMMMDMMDDDDMMВ качестве ответа выведите строку из заглавных латинских букв M и D (не разделяя их пробелами).Пример. Очередь MDD через минуту будет такой: DMD, а еще через минуту такой: DDM.

ОТВЕТЫ
# Код на ruby 2.2.3p173
def zadanie(line, time)
    line = line.gsub(/[^MD]/, "")
    time.times { |i|
        k = 0
        while k < line.size - 1 do
            if line[k..k + 1] == "MD"
                line[k], line[k + 1] = line[k + 1], line[k]
                k+=1
            end
            k+=1
        end
        p [i+1,line]
    }
    return line
end
# # Примеры применения
p zadanie("DMMDMDMDMMMDMMDDDDMM", 9)

Вывод
[1, "DMDMDMDMMMDMMDMDDDMM"]
[2, "DDMDMDMMMDMMDMDMDDMM"]
[3, "DDDMDMMMDMMDMDMDMDMM"]
[4, "DDDDMMMDMMDMDMDMDMMM"]
[5, "DDDDMMDMMDMDMDMDMMMM"]
[6, "DDDDMDMMDMDMDMDMMMMM"]
[7, "DDDDDMMDMDMDMDMMMMMM"]
[8, "DDDDDMDMDMDMDMMMMMMM"]
[9, "DDDDDDMDMDMDMMMMMMMM"]
"DDDDDDMDMDMDMMMMMMMM"

270
Контакты
Реклама на сайте
Спрошу
О проекте
Новым пользователям
Новым экспертам