Вам дан массив из n целых чисел. Вы хотите изменить массив так, чтобы он увеличивался, т. е. каждый элемент был по крайней мере такого же размера, как предыдущий элемент.
При каждом движении вы можете увеличивать значение любого элемента на единицу. Какое минимальное количество ходов требуется?
Ввод
Первая строка ввода содержит целое число n: размер массива.
Затем вторая строка содержит n целых чисел x1, x2 ... xN — содержимое массива.
Вывод
Вывести минимальное количество перемещается.
Пример
Ввод: 5
3 2 5 1 7
Выход: 5
Мой код следующий
Код: Выделить всё
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
using namespace std;
int main()
{
int arrSize = 0;
int number = -1;
vector vect;
string s;
std::string firstLine;
std::getline(std::cin, firstLine);
arrSize = stoi(firstLine);
std::string secondLine;
std::getline(std::cin, secondLine);
std::istringstream strm(secondLine);
while (strm >> s)
{
std::istringstream(s) >> number;
vect.push_back(number);
}
int cnt = 0;
for (int i = 0; i < arrSize - 1; i++)
{
for (int j = i + 1; j < arrSize; j++)
{
int first = vect[i];
int second = vect[j];
if (first > second)
{
std::swap(vect[i], vect[j]);
cnt++;
}
}
}
std::cout
Подробнее здесь: [url]https://stackoverflow.com/questions/78699798/cses-introductory-problems-algorithm-increasing-array[/url]
Мобильная версия