Есть ответ 👍

Вася с его сестрой леной увидели на окне 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

223
397
Посмотреть ответы 2

Ответы на вопрос:

Tooopo1
4,6(64 оценок)

На каждом шаге имеет смысл менять два горшка с разными цветами. поэтому всё получится, если роз, стоящих на чётных местах, будет столько же, сколько и фиалок на нечётных. при этом если тех и других 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.

program z3; uses crt; var x,y,z,k: byte; s: integer; beginclrscr; write('введи x='); readln(x); write('введи y='); readln(y); write('введи z='); readln(z); if (x> z) and (not(odd( then begins: =s+x; k: =k+1; end; if (y> z) and (not(odd( then begins: =s+y; k: =k+1; end; writeln('сумма  чётных элементов, больших z равна ',s); writeln('кол-во  чётных элементов, больших z равно ',k); readkeyend.

Реши свою проблему, спроси otvet5GPT

  • Быстро
    Мгновенный ответ на твой вопрос
  • Точно
    Бот обладает знаниями во всех сферах
  • Бесплатно
    Задай вопрос и получи ответ бесплатно

Популярно: Информатика

Caktus Image

Есть вопросы?

  • Как otvet5GPT работает?

    otvet5GPT использует большую языковую модель вместе с базой данных GPT для обеспечения высококачественных образовательных результатов. otvet5GPT действует как доступный академический ресурс вне класса.
  • Сколько это стоит?

    Проект находиться на стадии тестирования и все услуги бесплатны.
  • Могу ли я использовать otvet5GPT в школе?

    Конечно! Нейросеть может помочь вам делать конспекты лекций, придумывать идеи в классе и многое другое!
  • В чем отличия от ChatGPT?

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

Подпишись на наш телеграмм канал

GTP TOP NEWS