#include <iostream>
#include <vector>
using namespace std;
// глобальные переменные
const int arraySize = 10;
vector <int> numbers;
// сам алгоритм.
void result(){
// совет - обьявляй все переменные в начале функции
int leader = 0;
int maxCount = 0;
int count = 0;
// поиск самого частого числа
for (int c = 0; c < 9;c++){
// обнуляем счетчик
count = 0;
for (int c1 = 0;c1 < arraySize;c1++){
if (numbers[c1] == c) count++;
}
// проверка на лидера
if (maxCount < count){
leader = c;
maxCount = count;
}
}
// ну..с посмотрим:
cout << "Leader: " << leader << " (" << maxCount << ") " << std::endl;
}
int main()
{
// подготовка масива
srand(time(NULL)); // обнулем внутрений таймер для полного рандома
for (int c = 0; c < arraySize;c++) {
numbers.push_back(rand() % 9); // заполняем масив числами
}
// посмотрим на оригинальный масив
cout << "Original array: ";
for (int c = 0;c < arraySize;c++) cout << numbers[c] << " ";
cout << std::endl;
// сортировка
result();
return 0;
}
Объяснение:
Хорошая книга по с++: Герберт Шилд - с++ базовый курс.
сразу говорю, это неполное решение и за него дают не 100 а лишь да мало, но лучше чем ничего, на крайний случай если так и не найдешь толковое решение
from queue import PriorityQueue
d = {k: x for k, x in enumerate(map(int, input().split())) if x != 0}
q = PriorityQueue()
for x, k in d.items():
q.put((-k, x))
res = []
p_k, p_x = q.get()
res.append(p_x)
while q.qsize() != 0:
k, x = q.get()
res.append(x)
if p_k < -1:
q.put((p_k + 1, p_x))
p_k, p_x = (k, x)
print(*res[::-1], sep='')