Учитель задал домашку тупую решить на 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 монеты).

alieismailova1 alieismailova1    2   17.05.2020 09:26    0

Ответы
turivecpolina turivecpolina  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'а

ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика