
Вопрос задан 04.07.2023 в 14:49.
Предмет Информатика.
Спрашивает Мамаева Алина.
25 баллов даю (там ещё бонусом немного) Напишите прогу на C++ Задана последовательность целых
чисел a1,a2,…,an, в которой каждое число от 1 до 3 включительно. Требуется заменить в ней наименьшее количество чисел так, чтобы все числа в последовательности оказались равны между собой. Входные данные: В первой строке задано целое число n (1≤n≤106). Вторая строка содержит последовательность целых чисел a1,a2,…,an (1≤ai≤3). Выходные данные: Выведите наименьшее количество изменений, которое надо сделать, чтобы уравнять все числа в последовательности.

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

Отвечает Макеева Оля.
Код
- #include <iostream>
- #include <vector>
- int main() {
- int n;
- std::vector<int> sequence;
- std::cin >> n;
- for(auto i = 0; i < n; ++i) {
- int number;
- std::cin >> number;
- sequence.push_back(number);
- }
- int as = 0, bs = 0, cs = 0;
- for (auto &el : sequence) {
- switch (el) {
- case 1:
- ++as;
- break;
- case 2:
- ++bs;
- break;
- case 3:
- ++cs;
- break;
- default:
- throw std::runtime_error("All elements shall be into [1;3] range.");
- }
- }
- int an_answer = std::min({bs + cs, as + cs, bs + cs});
- std::cout << an_answer << std::endl;
- return 0;
- }




Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.
Конечно, вот пример программы на C++, которая решает данную задачу:
cpp#include <iostream>
#include <vector>
#include <algorithm>
int main() {
int n;
std::cin >> n;
std::vector<int> sequence(n);
for (int i = 0; i < n; ++i) {
std::cin >> sequence[i];
}
int count[4] = {0}; // Используем массив для подсчета количества каждого числа (1, 2, 3)
for (int num : sequence) {
count[num]++;
}
int maxCount = *std::max_element(count + 1, count + 4); // Находим максимальное количество повторений
int changesNeeded = n - maxCount; // Количество изменений - общее количество чисел минус максимальное количество повторений
std::cout << changesNeeded << std::endl;
return 0;
}
Пример входных данных:
8 1 2 3 1 2 1 1 2
Пример выходных данных:
5
Объяснение: В данном случае, наиболее часто встречающееся число - 1 (четыре раза). Чтобы все числа стали одинаковыми, нужно заменить 5 чисел (3 числа 2 и 2 числа 3).


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

Информатика 562

Информатика 404

Информатика 31

Информатика 76

Информатика 16

Информатика 41

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