Ато я не в очереди стоят мальчики и девочки. в начале каждой минуты, если за каким-то мальчиком стоит девочка, то он меняется с ней местами, пропуская ее вперед (при этом общее количество в очереди не меняется). вам дана очередь в виде последовательности букв m и d (начало очереди слева), определите, как она будет выглядеть через 9 минут. dmmdmdmdmmmdmmmm в качестве ответа выведите строку из заглавных латинских букв m и d (не разделяя их пробелами). пример. очередь mdd через минуту будет такой: dmd, а еще через минуту такой: ddm.
1)
DMMDMDMDMMMDMMMM
2)
DMDMDMDMMMDMMDMDDDMM
3)
DDMDMDMMMDMMDMDMDDMM
4)
DDDMDMMMDMMDMDMDMDMM
5)
MMMDMMDMDMDMDMMM
6)
MMDMMDMDMDMD
7)
MDMMDMDMDMD
8)
MMDMDMDMD
9)
MDMDMDMD
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("DMMDMDMDMMMDMMMM", 9)
Вывод
[1, "DMDMDMDMMMDMMDMDDDMM"]
[2, "DDMDMDMMMDMMDMDMDDMM"]
[3, "DDDMDMMMDMMDMDMDMDMM"]
[4, "MMMDMMDMDMDMDMMM"]
[5, "MMDMMDMDMDMD"]
[6, "MDMMDMDMDMD"]
[7, "MMDMDMDMD"]
[8, "MDMDMDMD"]
[9, "MDMDMD"]
"MDMDMD"