М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
kirill12123
kirill12123
28.03.2022 01:16 •  Информатика

Для школьного праздника группа учащихся решила поставить танец, в котором иллюстрировалась бы работа алгоритма сортировки пузырьком. В этом танце учащиеся становятся в одну линию, после этого некоторые стоящие рядом танцоры могут меняться местами. Одновременные обмены запрещены, то есть пока одна пара танцоров меняется местами, другие остаются на своих местах. В конце танца все девочки должны стоять в ряду слева, а все мальчики — справа. По данному первоначальному расположению мальчиков и девочек в ряду определите, какое минимальное число обменов им необходимо совершить, чтобы встать нужным образом.

Например, пусть первоначальная расстановка танцоров такая (буква «Д» обозначает девочку, буква «М» обозначает мальчика):

МДДМД
Тогда им необходимо выполнить 4 обмена. Запишем расстановку после каждого обмена, выделив жирным шрифтом пару, которая поменялась местами.

ДМДМД
ДМДДМ
ДДМДМ
ДДДММ
В этой задаче вам необходимо определить минимальное число обменов для следующих пяти первоначальных расстановок:

МДММДМД




Во второй расстановке сначала стоит 7 мальчиков, потом 8 девочек.

В третьей расстановке стоит 10 мальчиков, 10 девочек, 10 мальчиков, 10 девочек, 10 мальчиков, 10 девочек. Всего 60 танцоров.

В четвёртой расстановке 1 мальчик, 1 девочка, 2 мальчика, 2 девочки, 3 мальчика, 3 девочки, 4 мальчика, 4 девочки, 5 мальчиков, 5 девочек, 6 мальчиков, 6 девочек. Всего 42 танцора.

В пятой расстановке мальчики и девочки чередуются, всего 80 танцоров.

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

Для выполнения вычислений вы можете пользоваться компьютером (калькулятором, электронной таблицей, средой программирования).

👇
Открыть все ответы
Ответ:
Celebrat
Celebrat
28.03.2022

/*Никаких проверок на то что файл не открылся, сломался, удалился и тд. я не делал,  

если вам надо - реализуете самостоятельно.*/

#include <iostream>

#include <fstream>

#include <ctime>

int main() {

std::ofstream fin;

std::ifstream fout;

srand(time(NULL));

int N;

std::cin >> N;

int* buff = new int[N];

fin.open("f.txt");

 

for (int i = 0; i < N; i++) {

 fin << rand() % 10 << " ";

}

fin.close();

fout.open("f.txt");

for (int i = 0; i < N; i++)

 fout >> buff[i];

fout.close();

fin.open("g.txt");

for (int i = 0; i < N - 1; i++)

 fin << buff[i] * buff[i + 1] << " ";

fin.close();

return 0;

}

4,4(60 оценок)
Ответ:
vovova2020
vovova2020
28.03.2022

Допустим, мы ведем счет дней недели с воскресенья и присваиваем дням такие номера:

0- Вс, 1- Пн, 2- Вт, 3- Ср, 4- Чт, 5- Пт, 6- Сб.

Определим, когда в январе было первое Вс.

Если 31 был Пн, то 4 недели назад, т.е. 31-28=3 числа тоже был Пн.

А Вс было перед Пн, т.е. 2 января.

Числа от 0 до 6 - это остатки целочисленного деления на 7.

Получается, что остаток деления числа 2 на 7, должен привести нас к нулю. А он равен двум.

Идея: вычтем из остатка 2, чтобы получился ноль.Идея хороша для остатка 2, 3, 4, 5, и 6. Она даст нам значения 0, 1, 2, 3 и 4. А вот для остатков 0 и 1, она даст -2 и -1, что нехорошо.

Внесем корректировку. если получилось отрицательное значение, увеличим его на 7.

Проверим ,будет ли это работать.

1 января - Сб (номер дня 6) алгоритм дает 1-2 = -1 и +7 = 6 - верно

2 января - Вс (номер дня 0) алгоритм дает 2-2 = 0 - верно

3 января - Пн (номер дня 1) алгоритм дает 3-2 = 1 - верно

4 января - Вт (номер дня 2) алгоритм дает 4-2 = 2 - верно

5 января - Ср (номер дня 3) алгоритм дает 5-2 - 3 - верно

6 января - Чт (номер дня 4) алгоритм дает 6-2 = 4 - верно

7 января - Пт (номер дня 5) алгоритм дает 0-2 = -2 и +7 = 5 - верно

8 января - Сб (номер дня 6) алгоритм дает 1-2 = -1 и +7 = 6 - верно9 января - Вс (номер дня 0) алгоритм дает 2-2 = 0 - верно

Все работает.

// PascalABC.NET 3.3, сборка 1625 от 17.01.2018

// Внимание! Если программа не работает, обновите версию!

begin

  var chislo:=ReadInteger('Номер дня в январе 2011 года:');

  chislo:=chislo mod 7-2;

  if chislo<0 then chislo:=chislo+7;

  var y:string;

  case chislo of

  0:y:='Воскресенье';

  1:y:='Понедельник';

  2:y:='Вторник';

3:y:='Среда';

  4:y:='Четверг';

  5:y:='Пятница';

  6:y:='Суббота'

  end;

  Writeln('Это ',y)

end.

Примеры

Номер дня в январе 2021 года: 31 января

Это Воскресенье

Номер дня в январе 2021 года: 15 января

Это Пятница

4,6(3 оценок)
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ