даю (там ещё бонусом немного) Напишите прогу на 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;}