Вопрос задан 07.07.2023 в 12:19. Предмет Информатика. Спрашивает Куртлацкова Яна.

Учитель задал домашку тупую помогите решить на c++есть массив чисел длиной n: a_1, a_2, a_3, a_4,

.... , a_nмы хотим отсортировать массив в порядке не убыванияпо следующему принципу: мы выбираем два соседних числа и меняем местамиа за это платим удвоенную разность чисел которые меняем местаминужно вывести цену которую мы в итоге получимВвод31 2 3 Вывод8В примере сначала числа 1 и 2 поменяются местами (потребуется 2 монеты ),затем числа 1 и 3 (разница равна 2, суммарно плюс 4 монеты), и последним будет замена2 и 3 (ещё 2 монеты).
0 0
Перейти к ответам

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Лопачук Віка.

#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
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Для решения данной задачи вам потребуется реализовать алгоритм сортировки пузырьком, который при этом будет учитывать стоимость обмена элементов. Вот пример кода на C++, который решает данную задачу:

cpp
#include <iostream> #include <vector> using namespace std; int main() { int n; cin >> n; vector<int> a(n); for (int i = 0; i < n; ++i) { cin >> a[i]; } int totalCost = 0; bool swapped; do { swapped = false; for (int i = 0; i < n - 1; ++i) { if (a[i] > a[i + 1]) { totalCost += 2 * (a[i] - a[i + 1]); swap(a[i], a[i + 1]); swapped = true; } } } while (swapped); cout << totalCost << endl; return 0; }

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

0 0

Похожие вопросы

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос