В
Все
М
Математика
О
ОБЖ
У
Українська мова
Д
Другие предметы
Х
Химия
М
Музыка
Н
Немецкий язык
Б
Беларуская мова
Э
Экономика
Ф
Физика
Б
Биология
О
Окружающий мир
Р
Русский язык
У
Українська література
Ф
Французский язык
П
Психология
А
Алгебра
О
Обществознание
М
МХК
В
Видео-ответы
Г
География
П
Право
Г
Геометрия
А
Английский язык
И
Информатика
Қ
Қазақ тiлi
Л
Литература
И
История
sqerrr
sqerrr
06.06.2021 21:50 •  Информатика

Учитель задал домашку тупую решить на c++

есть массив чисел длиной n: a_1, a_2, a_3, a_4, , a_n

мы хотим отсортировать массив в порядке не убывания

по следующему принципу: мы выбираем два соседних числа и меняем местами

а за это платим удвоенную разность чисел которые меняем местами

нужно вывести цену которую мы в итоге получим

Ввод

3

1 2 3

Вывод

8

В примере сначала числа 1 и 2 поменяются местами (потребуется 2 монеты ),

затем числа 1 и 3 (разница равна 2, суммарно плюс 4 монеты), и последним будет замена

2 и 3 (ещё 2 монеты).

Показать ответ
Ответ:
АмелияРайс
АмелияРайс
14.10.2020 21:01

#include <iostream>

using namespace std;

void swap(int *a, int *b){

   int temp = *a;

   *a = *b;

   *b = temp;

}

signed main() {

   int ans = 0;

   int n;

   cin >> n;

   int arr[n];

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

       cin >> arr[i];

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

       for (int j = 0; j < n-i-1; j++){

           if (arr[j] < arr[j+1]){

               swap(&arr[j], &arr[j+1]);

               ans += (arr[j] - arr[j+1])*2;

           }

       }

   }

   cout << ans;

}

P.S: задачка не тупая, хороший вариант для понимания bubble sort'а

0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота