Вася с его сестрой леной увидели на окне 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
Ответы на вопрос:
На каждом шаге имеет смысл менять два горшка с разными цветами. поэтому всё получится, если роз, стоящих на чётных местах, будет столько же, сколько и фиалок на нечётных. при этом если тех и других 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
-
Быстро
Мгновенный ответ на твой вопрос -
Точно
Бот обладает знаниями во всех сферах -
Бесплатно
Задай вопрос и получи ответ бесплатно
Популярно: Информатика
-
asyanikolaeva0p08iun10.12.2021 06:11
-
shol0908.03.2023 17:49
-
mogilko8801.12.2020 17:59
-
НастёнышЬ1406.07.2020 10:28
-
сказка50007.09.2020 09:25
-
albina2406198020.08.2021 03:56
-
даньго20.02.2023 15:41
-
Bikolik27nn12.08.2022 13:00
-
vikkkki102.07.2021 23:27
-
Sr52902.10.2022 16:34
Есть вопросы?
-
Как otvet5GPT работает?
otvet5GPT использует большую языковую модель вместе с базой данных GPT для обеспечения высококачественных образовательных результатов. otvet5GPT действует как доступный академический ресурс вне класса. -
Сколько это стоит?
Проект находиться на стадии тестирования и все услуги бесплатны. -
Могу ли я использовать otvet5GPT в школе?
Конечно! Нейросеть может помочь вам делать конспекты лекций, придумывать идеи в классе и многое другое! -
В чем отличия от ChatGPT?
otvet5GPT черпает академические источники из собственной базы данных и предназначен специально для студентов. otvet5GPT также адаптируется к вашему стилю письма, предоставляя ряд образовательных инструментов, предназначенных для улучшения обучения.