Pascalabc 30
дана цепочка, состоящая из синих (b) и красных (r) точек. нужно удалить наименьшее количество синих точек так, чтобы сначала шли только синие, а потом – только красные.
входные данные
входная строка содержит только символы 'b' и 'r' без пробелов.
выходные данные
нужно вывести полученную цепочку, в которой сначала идут только синие точки, а потом – только красные. во второй строке нужно вывести количество удалённых синих точек.
примеры
входные данные
bbbrbrbrr
выходные данные
bbb
2
+ К Т О
Т О К
В младшем разряде Т+О=К, в соседнем Т+О=О
Очевидно, что Т+О превысило 10 и +1 перенесена в соседний разряд.
Но тогда О+Т+1=О+10 (это тоже понятно, перенос в старший разряд должен быть, без него получится, что Т+1=0, а это невозможно).
Отсюда Т+1=10 ⇒ Т=9
Теперь ребус выглядит так:
К О 9
+ К 9 О
9 О К
Посмотрим в старший разряд. К+К+1=9 (мы выше выяснили, что есть перенос в этот разряд). Получаем, что 2К=8 ⇒ К=4
4 О 9
+ 4 9 О
9 О 4
Тут уже совсем просто. 9+О=14 (вспоминаем про перенос) и О=5
4 5 9
+ 4 9 5
9 5 4
ответ: К=4, О=5, Т=9