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

Ответы на вопрос

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("MDDDMMDMDDDMMMMMMDDM", 10)
# p zadanie("MMDMDDDDDMMDDDMDDDMD", 10)
# p zadanie("MMDDDDMDMM", 5)
Вывод
[1, "DMDDMDMDMDDMMMMMDMDM"]
[2, "DDMDDMDMDMDMMMMDMDMM"]
[3, "DDDMDDMDMDMMMMDMDMMM"]
[4, "DDDDMDDMDMMMMDMDMMMM"]
[5, "DDDDDMDDMMMMDMDMMMMM"]
[6, "DDDDDDMDMMMDMDMMMMMM"]
[7, "DDDDDDDMMMDMDMMMMMMM"]
[8, "DDDDDDDMMDMDMMMMMMMM"]
[9, "DDDDDDDMDMDMMMMMMMMM"]
[10, "DDDDDDDDMDMMMMMMMMMM"]
"DDDDDDDDMDMMMMMMMMMM"



Давайте рассмотрим последовательность MDDDMMDMDDDMMMMMMDDM шаг за шагом:
1. Минута 1: - MDDDMMDMDDDMMMMMMDDM - Находим первую пару MD и меняем их местами: DMDDMMDMDDDMMMMMMDDM
2. Минута 2: - DMDDMMDMDDDMMMMMMDDM - Находим вторую пару MD и меняем их местами: DDMDMMDMDDDMMMMMMDDM
3. Минута 3: - DDMDMMDMDDDMMMMMMDDM - Находим третью пару MD и меняем их местами: DDDMMMDMDDDMMMMMMDDM
4. Минута 4: - DDDMMMDMDDDMMMMMMDDM - Находим четвертую пару MD и меняем их местами: DDDMMDMMDDDMMMMMMDDM
5. Минута 5: - DDDMMDMMDDDMMMMMMDDM - Находим пятую пару MD и меняем их местами: DDDMMDMMDDDMMMMMMDDM
6. Минута 6: - DDDMMDMMDDDMMMMMMDDM - Находим шестую пару MD и меняем их местами: DDDMMDMMDDDMMMMMMDDM
7. Минута 7: - DDDMMDMMDDDMMMMMMDDM - Находим седьмую пару MD и меняем их местами: DDDMMDMMDDDMMMMMMDDM
8. Минута 8: - DDDMMDMMDDDMMMMMMDDM - Находим восьмую пару MD и меняем их местами: DDDMMDMMDDDMMMMMMDDM
9. Минута 9: - DDDMMDMMDDDMMMMMMDDM - Находим девятую пару MD и меняем их местами: DDDMMDMMDDDMMMMMMDDM
10. Минута 10: - DDDMMDMMDDDMMMMMMDDM - Находим десятую пару MD и меняем их местами: DDDMMDMMDDDMMMMMMDDM
Таким образом, через 10 минут очередь будет выглядеть как DDDMMDMMDDDMMMMMMDDM.


Топ вопросов за вчера в категории Информатика







Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili