HaskyZ0nG
22.10.2021 13:43

ИНФОРМАТИКА КОД НА ПИТОН Слишком много платьев
Имя входного файла: стандартный ввод или stdin
Имя выходного файла: стандартный вывод или stdout
Ограничение по времени: 2 секунды
Ограничение по памяти: 64 мегабайта
Сёстры Рита и Берта живут в одной комнате и делят один шкаф на двоих. Они очень любят
новые наряды, и поэтому у них скопился целый шкаф платьев. Их настолько много, что иногда
девочки путаются и берут не своё платье. В последнее время у девочек появилось много свободного
времени, поэтому они решили навести порядок в шкафу.
Сейчас платья висят вперемешку. Девочки хотят развесить их так, чтобы сначала висели все
платья одной из девочек, а потом все платья другой. За одной действие можно достать одно платье
и повесить его обратно в шкаф на любое место Рите и Берте узнать, за какое минимальное количество действий они справятся с
наведением порядка в шкафу?
Формат входных данных
В первой строке содержится целое число n (1 ⩽ n ⩽ 50 000) — количество платьев в шкафу.
Во второй строке — строчка длины n, состоящая только из символов «R» и «B», означающих
платья Риты и Берты соответственно.
Формат выходных данных
Выведите одно число — минимальное число действий необходимых для упорядочивания платьев.
Примеры
стандартный ввод или stdin стандартный вывод или stdout
4
RBRB
1
8
BBRRBRBR
2

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
IIIayni
10.01.2021 23:48
Const n=8;
var 
a:array[1..n,1..n] of integer;
i,j,k,s,s1,si,dmin,smin:integer;
begin
Randomize;
writeln('Исходный массив:');
for i:=1 to n do
 begin
 for j:=1 to n do
  begin
  a[i,j]:=random(50);
  write(a[i,j]:4);
  end;
  writeln;
 end;
write('k = '); readln(k);
s:=0;
for j:=1 to n do s:=s+a[k,j];
writeln('s = ',s);
dmin:=999999; smin:=999999;
for i:=1 to n do
 if i<>k then
  begin
  s1:=0; 
  for j:=1 to n do s1:=s1+a[i,j];
  writeln('s',i,' = ',s1);
  if abs(s1-s)<dmin then begin dmin:=abs(s1-s); smin:=s1; si:=i; end;
  end;
writeln('Номер строки = ',si,', smin = ',smin);
end.

Пример:
Исходный массив:
   9   0  22  40  20  35   2  25
  23  30  22  35  41   0   9  40
   1  15   6  18  43  47  34  33
  26   5   2  45  13  46  40   2
  26  39   7  31   3  43  20   8
  25  15  24   6  10  16   3  25
  47   0  27  35  14  15  36  11
  16  38  14  14  33   7  11  26
k = 5
s = 177
s1 = 153
s2 = 200
s3 = 197
s4 = 179
s6 = 124
s7 = 185
s8 = 159
Номер строки = 4, smin = 179
0,0(0 оценок)
Ответ:
danisdigger
21.11.2021 23:38
Поиск простых делителей числа:

var i,j,n:longint;
    f:boolean;
begin
 writeln('Введите число');
 readln(n);
  if n<2 then writeln('Простых делителей нет')
  else
   begin
    write('Число ',n,' ','= 1');
    for i:=2 to n do
     if n mod i=0 then
      begin
       f:=true;
       j:=2;
       while f and(j<=round(sqrt(i/2)))do
        begin
         if i mod j=0 then f:=false
         else j:=j+1;
        end;
      if f then write('*',i);
     end;
   end;
end.

Тестовое решение:

Введите число
2345
Число 2345 = 1*5*7*35*67
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота