Для школьного праздника группа учащихся решила поставить танец, в котором иллюстрировалась бы работа алгоритма сортировки пузырьком. В этом танце учащиеся становятся в одну линию, после этого некоторые стоящие рядом танцоры могут меняться местами. Одновременные обмены запрещены, то есть пока одна пара танцоров меняется местами, другие остаются на своих местах. В конце танца все девочки должны стоять в ряду слева, а все мальчики — справа. По данному первоначальному расположению мальчиков и девочек в ряду определите, какое минимальное число обменов им необходимо совершить, чтобы встать нужным образом.
Например, пусть первоначальная расстановка танцоров такая (буква «Д» обозначает девочку, буква «М» обозначает мальчика):
МДДМД
Тогда им необходимо выполнить 4 обмена. Запишем расстановку после каждого обмена, выделив жирным шрифтом пару, которая поменялась местами.
ДМДМД
ДМДДМ
ДДМДМ
ДДДММ
В этой задаче вам необходимо определить минимальное число обменов для следующих пяти первоначальных расстановок:
МДММДМД
Во второй расстановке сначала стоит 7 мальчиков, потом 8 девочек.
В третьей расстановке стоит 10 мальчиков, 10 девочек, 10 мальчиков, 10 девочек, 10 мальчиков, 10 девочек. Всего 60 танцоров.
В четвёртой расстановке 1 мальчик, 1 девочка, 2 мальчика, 2 девочки, 3 мальчика, 3 девочки, 4 мальчика, 4 девочки, 5 мальчиков, 5 девочек, 6 мальчиков, 6 девочек. Всего 42 танцора.
В пятой расстановке мальчики и девочки чередуются, всего 80 танцоров.
ответом на эту задачу является пять целых чисел, записанных в пяти отдельных строках, по одному числу в строке. ответы на расстановки должны быть записаны в том же порядке, в котором они приведены в условии. Если вы не можете найти ответ для какой-то расстановки, напишите в качестве ответа любое число.
135
305
Ответы на вопрос:
// pascalabc.net 3.2, сборка 1387 от 20.02.2017 // внимание! если программа не работает, обновите версию! begin var n: =readinteger('n='); var a: =readarrinteger('вводите данные: ',n); a.println; var s: =a.where(x-> (x> 9) and (x< 100) and (x mod 10=7)); if s.count=0 then writeln('таких чисел нет') else writeln(s.sum) end. пример n= 5 вводите данные: 45 -38 27 -17 47 45 -38 27 -17 47 74 // pascalabc.net 3.2, сборка 1387 от 20.02.2017 // внимание! если программа не работает, обновите версию! function sod(n: integer): integer; begin var s: =abs(n).tostring; result: =s.select(c-> c.todigit).sum end; begin var a: =arrrandom(readinteger('n=',999); a.println; a: =a.select(x-> sod(; a.println end. пример n= 10 -252 814 -239 -157 792 -223 697 -482 616 -675 9 13 14 13 18 7 22 14 13 18 // pascalabc.net 3.2, сборка 1387 от 20.02.2017 // внимание! если программа не работает, обновите версию! begin var n: =readinteger('n='); var a: =readarrinteger('вводите данные: ',n); a.println; writeln('четных чисел ',a.where(x-> x.iseven).count); writeln('нечетных чисел ',a.where(x-> x.isodd).count); end. пример n= 16 вводите данные: 34 -345 21321 643 1 0 325 2312 236 -324 -3242 7 12 7 12 50 34 -345 21321 643 1 0 325 2312 236 -324 -3242 7 12 7 12 50 четных чисел 9 нечетных чисел 7
Популярно: Информатика
-
vikaisaenko151125.06.2020 23:47
-
НаильХудайбердиев30.06.2021 01:08
-
RownBitter18.05.2021 20:16
-
HOHOL66628.05.2022 06:41
-
rasputniya27.12.2020 23:40
-
sofiapristensk24.09.2020 05:08
-
Rube13454hill08.12.2022 21:39
-
Anastas1ya111.12.2020 10:14
-
МастерХ21.04.2022 04:17
-
знатокслава10.07.2022 19:50