profile
Размещено 5 лет назад по предмету Информатика от Fovden

Вася с его сестрой Леной увидели на окне 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.txt_______ output.txt
4
0 1 0 1   _______0

5 _____________2
1 0 0 0 1 _______54
                             _12

3
1 1 1 _________-1

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

Не тот ответ на вопрос, который вам нужен?
Найди верный ответ
Самые новые вопросы
tegysigalpa2012
Русский язык - 5 лет назад

Помогите решить тест по русскому языку тест по русскому языку «местоимение. разряды местоимений» для 6 класса 1. укажите личное местоимение: 1) некто 2) вас 3) ни с кем 4) собой 2. укажите относительное местоимение: 1) кто-либо 2) некоторый 3) кто 4) нам 3. укажите вопросительное местоимение: 1) кем-нибудь 2) кем 3) себе 4) никакой 4. укажите определительное местоимение: 1) наш 2) который 3) некий 4) каждый 5. укажите возвратное местоимение: 1) свой 2) чей 3) сам 4) себя 6. найдите указательное местоимение: 1) твой 2) какой 3) тот 4) их 7. найдите притяжательное местоимение: 1) самый 2) моего 3) иной 4) ничей 8. укажите неопределённое местоимение: 1) весь 2) какой-нибудь 3) любой 4) этот 9. укажите вопросительное местоимение: 1) сколько 2) кое-что 3) она 4) нами 10. в каком варианте ответа выделенное слово является притяжательным местоимением? 1) увидел их 2) её нет дома 3) её тетрадь 4) их не спросили

Информация

Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.