merzlikinairena
?>

Вася с его сестрой леной увидели на окне n горшков с цветами, которые стоят на n позициях, пронумерованных от 1 до n. в каждом горшке растет либо роза, либо фиалка. захотели расставить горшки с цветами таким образом, чтобы каждому из них расстановка показалась красивой. но у них разное представление о красоте: васе понравится расстановка, если на нечетных позициях будут стоять розы, а лене — если на четных позициях будут стоять фиалки. решили действовать сообща, а именно: они по очереди будут менять местами горшки на позициях i и j, причем i и j каждый раз выбирают на свое усмотрение. : вычислите, какие действия им нужно совершать. формат входного файла в первой строке входного файла input.txt записано натуральное число n, не превосходящее 1000. в следующей строке находятся n чисел, i-е равно либо 0 — это означает, что на данной позиции стоит роза, либо 1 — это означает, что на данной позиции стоит фиалка. формат выходного файла первая строка выходного файла output.txt должна содержать число -1 если не удастся достичь расстановки, которая понравится им обоим, либо число k — неотрицательное и не превосходящее n, равное количеству действий, которое необходимо совершить , чтобы достичь расстановки, которая им обоим понравится. в следующих k строках нужно вывести пары i и j (1 ≤ i ≤ n, 1 ≤ j ≤ n) — действия, которые необходимо совершить . первое действие делает вася, затем лена, и так по очереди. пример входных и выходных данных input. output.txt 4 0 1 0 1 5 1 0 0 0 1 _12 3 1 1 1

Информатика

Ответы

nkaminskaja
На каждом шаге имеет смысл менять два горшка с разными цветами. Поэтому всё получится, если роз, стоящих на чётных местах, будет столько же, сколько и фиалок на нечётных. При этом если тех и других k, то всего нужно k перестановок.
Код (PascalABC.NET 3.2):
begin
  var n := ReadInteger();
  var roses := new integer[n];
  var count_roses := 0;
  var violets := new integer[n];
  var count_violets := 0;
  for var i := 1 to n do
  begin
    if ReadInteger() = i mod 2 then
      if i mod 2 = 0 then
      begin
        roses[count_roses] := i;
        inc(count_roses);
      end
      else
      begin
        violets[count_violets] := i;
        inc(count_violets);
      end;
  end;
  if count_roses = count_violets then
  begin
    writeln(count_roses);
    for var i := 0 to count_roses - 1 do
      println(roses[i], violets[i]);
  end
  else
    write(-1)
end.
dpolkovnikov
Сначала немного теории.
Тут у нас импликация(если..то...), комбинированная с конъюнкцией(и).
Таблица истинности импликации(стрелочки):
0 0 1
0 1 1
1 0 0
1 1 1
Общее правило: если a<=b, тогда правда
Таблица истинности конъюнкции(/\):
0 0 0
0 1 0
1 0 0
1 1 1
Общее правило: если есть одна ложь-всё ложь
Теперь о примере:
Просто подставляем вместо x варианты. Так как между двумя скобочками с Если... То... стоит И, нам нужен вариант, где оба Если... То... являются правдой.
Рассмотрим подробно 1 вариант:
21<25 - это правда
21<23 - это правда
Таким образом, в первых скобочках правда, это доказывает таблица истинности, приведённая выше.
21<22 - это правда
21>21 - это ложь
В этих скобочках-ложь.
А так как ложь и правда в И являются ложью, нам не подходит данный вариант
2 вариант-верный ответ, т.к.:
22<25 - это правда
22<23 - это правда
В первых скобочках правда
22<22 - это ложь
22>21 - это правда
И в этих скобках правда.
Как можно убедится, снова взглянув в таблицу истинности для конъюнкции, всё выражение является правдой.
3 и 4 посмотрите сами и убедитесь что это ложь.
kotofei147516

В оглавлении произведения, разбитого на части, разделы, подразделы, главы, подглавы, параграфы, подпараграфы, примечания и т. п., устанавливающие соподчиненность отдельных частей произведения, последовательно приводятся наименования частей, разделов, глав, параграфов в полном объёме, так, как они даны в тексте, и указываются страницы, на которых начинается рубрика. Рубрики последней ступени — подзаголовки, взятые в тексте рукописи в подбор, — в оглавлении могут не приводиться. Взаимоподчиненность частей произведения в оглавлении передают средствами полиграфического оформления: выделением в красную строку, шрифт

Объяснение:

Ответить на вопрос

Поделитесь своими знаниями, ответьте на вопрос:

Вася с его сестрой леной увидели на окне n горшков с цветами, которые стоят на n позициях, пронумерованных от 1 до n. в каждом горшке растет либо роза, либо фиалка. захотели расставить горшки с цветами таким образом, чтобы каждому из них расстановка показалась красивой. но у них разное представление о красоте: васе понравится расстановка, если на нечетных позициях будут стоять розы, а лене — если на четных позициях будут стоять фиалки. решили действовать сообща, а именно: они по очереди будут менять местами горшки на позициях i и j, причем i и j каждый раз выбирают на свое усмотрение. : вычислите, какие действия им нужно совершать. формат входного файла в первой строке входного файла input.txt записано натуральное число n, не превосходящее 1000. в следующей строке находятся n чисел, i-е равно либо 0 — это означает, что на данной позиции стоит роза, либо 1 — это означает, что на данной позиции стоит фиалка. формат выходного файла первая строка выходного файла output.txt должна содержать число -1 если не удастся достичь расстановки, которая понравится им обоим, либо число k — неотрицательное и не превосходящее n, равное количеству действий, которое необходимо совершить , чтобы достичь расстановки, которая им обоим понравится. в следующих k строках нужно вывести пары i и j (1 ≤ i ≤ n, 1 ≤ j ≤ n) — действия, которые необходимо совершить . первое действие делает вася, затем лена, и так по очереди. пример входных и выходных данных input. output.txt 4 0 1 0 1 5 1 0 0 0 1 _12 3 1 1 1
Ваше имя (никнейм)*
Email*
Комментарий*

Популярные вопросы в разделе

Lapushkin1988
Руслан1360
yulialoveinthelow2010
Истомин441
Svetlana395
ekaizer
Komarovsergeysk
nickcook424
alexst123012225
lulu777
optima3559
eronch
ka-shop
evatautes
ВладимировнаАлександр1421