Предмет: Информатика,
автор: yabhbkirill
25 баллов даю (там ещё бонусом немного)
Напишите прогу на C++
Задана последовательность целых чисел a1,a2,…,an, в которой каждое число от 1 до 3 включительно. Требуется заменить в ней наименьшее количество чисел так, чтобы все числа в последовательности оказались равны между собой.
Входные данные:
В первой строке задано целое число n
(1≤n≤106). Вторая строка содержит последовательность целых чисел a1,a2,…,an (1≤ai≤3).
Выходные данные:
Выведите наименьшее количество изменений, которое надо сделать, чтобы уравнять все числа в последовательности.
yabhbkirill:
кто меня отметил и за что
Ответы
Автор ответа:
1
Код
- #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;
- }
Приложения:

Похожие вопросы
Предмет: Русский язык,
автор: Andryuhin
Предмет: Другие предметы,
автор: gorchakova2014
Предмет: Русский язык,
автор: pasha221182
Предмет: Математика,
автор: selena33Gomez