Akri2532
25.03.2023 12:39

50 ! решите по программированию.

: одномерный японский кроссворд

не так давно петя узнал, что такое японский кроссворд. японский кроссворд — это изображение, представляемое таблицей размера a × b квадратных клеток, каждая из которых имеет либо белый, либо черный цвет. слева от строк и сверху от столбцов располагаются числа, которые шифруют данную строку или столбец. количество чисел показывает, сколько групп чёрных клеток находятся в соответствующей строке или столбце, а сами числа — сколько идущих подряд чёрных клеток содержит каждая из этих групп.

петя счел общий случай японского кроссворда слишком сложным и нарисовал строку из n клеток (то есть японский кроссворд размера 1 × n), которую он хочет зашифровать числами так же, как в японском кроссворде.

пример шифрования одной строки японского кроссворда.

петя найти числа, шифрующие нарисованную им строку кроссворда.

входные данные

в первой строке содержится целое положительное число n (1 ≤ n ≤ 100) — длина строки. во второй строке содержится строка, состоящая из n символов 'b' или 'w', ('b' соответствует черной клетке, 'w' — белой клетке в строке, нарисованной петей).

выходные данные

в первой строке должно содержаться целое неотрицательное число k — количество чисел, шифрующих строку, то есть количество групп черных клеток в строке.

во второй строке должно содержаться k целых чисел, шифрующих строку, то есть соответствующих размерам групп последовательных черных клеток в порядке слева направо.

пример:

ввод:

3

bbw

вывод:

1

2

p.s. если кому надо, то вот словесное описание решения, которое я не понимаю: в этой нужно посчитать длину каждого блока из подряд идущих чёрных клеток. делать это можно так: пройдёмся циклом с переменной i по нашей строке слева направо, если мы встретили чёрную клетку, то возьмём переменную j = i, и пока j <  n и s[j] = 'b', мы прибавляем j. далее мы добавляем в ответ длину получившегося отрезка (она равна j - i), и переприсваеваем в i значение j. после того, как цикл по i закончит выполнение, можно выводить ответ.

асимптотика такого решения — o(n) времени и памяти.

напишите программу на языке pascalabc.net (желательно) или "c", максимально понятно и просто.

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
Алияолиилл
15.04.2022 07:20
Var
begin
readln(n);
if n=1 then begin writeln('1 месяц');writeln('кол-во дней');end;
if n=2 then begin writeln('2 месяц');writeln('кол-во дней');end;
if n=3 then begin writeln('3 месяц');writeln('кол-во дней');end;
if n=4 then begin writeln('4 месяц');writeln('кол-во дней');end;
if n=5 then begin writeln('5 месяц');writeln('кол-во дней');end;
if n=6 then begin writeln('6 месяц');writeln('кол-во дней');end;
if n=7 then begin writeln('7 месяц');writeln('кол-во дней');end;
if n=8 then begin writeln('8 месяц');writeln('кол-во дней');end;
И так до 12 раз...
Я не уверен что тебе нужен такой монстр...
В место к примеру 1 месяца пишешь январь...
0,0(0 оценок)
Ответ:
jiohjb
09.10.2020 12:51
1. Представление информации в компьютере, единицы измерения информации В ЭВМ применяется двоичная система счисления, т.е. все числа в компьютере представляются с нулей и единиц, поэтому компьютер может обрабатывать только информацию, представленную в цифровой форме.
2. Принято называть системой счисления
3.• устройства ввода информации
• устройства обработки информации
• устройства хранения
• устройства вывода информации.
По другому: системный блок, монитор, клавиатура и мышь
4.частота. В герцах (Гц)
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота