Задан массив, состоящий из чисел 1, 2, 3. За одну операцию можно поменять местами два любых числа. Вам необходимо за минимальное

Постоянный пользователь нашего ресурса написал нам почту в 18:26 с просьбой предоставить развернутый ответ на его вопрос. Наши эксперты отнесли этот вопрос к разделу Разное. Для ответа был привлечен один из опытных специалистов, который занимается написанием студенческих работ.

Цитируем вопрос ваш вопрос

Задан массив, состоящий из чисел 1, 2, 3. За одну операцию можно поменять местами два любых числа. Вам необходимо за минимальное

Разбор вопроса и ответ на него

Раздел 'ЕГЭ (школьный)', к которому был отнесён этот вопрос является не простой рубрикой. Для подготовки ответа на вопросы из этой рубрики специалист должен обладать широкими познаниями в различных научных областях. Однако в нашей компании таковые имеются.

Вы спрашивали:

Задан массив, состоящий из чисел 1, 2, 3. За одну операцию можно поменять местами два любых числа. Вам необходимо за минимальное

Конечно этот ответ может полностью не раскрыть тему вопроса, но мы постарались сделать его максимально полным. Предлагаем ознакомиться с мнением эксперта по этой теме:

var
  a     : array [1..1000] of longint;
  b     : array [1..3] of longint;
  i,n,k : longint;
 
  procedure Swap(x,y,z:longint);
    var
      i,j,t : longint;
    begin
      i:=1;
      j:=n;
      while (i<=n) and (j>=1) and (i<j) and (i<=z) do
        begin
          while (i<=n) and (a[i]<>x) do inc(i);
          while (j>=1) and (a[j]<>y) do dec(j);
          if (i<j) and (i<=z)
            then begin
                   t:=a[i]; a[i]:=a[j]; a[j]:=t;
                   inc(i); dec(j);
                   inc(k);
                 end;
        end;
    end;
begin
  readln(n);
  for i:=1 to 3 do b[i]:=0;
  for i:=1 to n do
    begin
      read(a[i]);
      inc(b[a[i]]);
    end;
  Swap(3,1,b[1]);
  Swap(2,1,b[1]);
  Swap(3,2,b[1]+b[2]);
  writeln(k);
end.

К нам на почту приходит много вопросов. Мы стараемся отвечать на все. Однако вы должны понимать, что большая загруженность увеличивает время ответа. Сейчас среднее время ответа равно 14:2.