У продавца воздушных шариков есть n шаров. Каждый из них имеет некоторый цвет. Однако совсем недавно Три Толстяка издали указ, разрешающий торговать шариками какого-то одного цвета. Чтобы не нарушать закон, но при этом и не потерять прибыль, продавец решил перекрасить некоторые из своих шариков.
Напишите программу для определения минимального количества перекрашиваний.
В первой строке задано количество шаров n (1 ≤ n ≤ 100000). Вторая строка состоит из n целых чисел, в пределах от 1 до 9, определяющие цвета шаров (1 - синий, 2 - зеленый, 3 - голубой, 4 - красный, 5 - розовый, 6 - желтый, 7 - серый, 8 - черный, 9 - белый).
Выведите минимальное количество шариков, которое необходимо перекрасить, чтобы все шарики были одного цвета.
#include <iostream>
#include <vector>
using namespace std;
vector <pair<int, int>> vect;
int n, tmp, MAX = 1;
bool push = false;
int main()
{
cin >> n;
for (int i = 0; i < n; i++)
{
cin >> tmp;
push = false;
for (int j = 0; j < vect.size(); j++)
if (vect[j].first == tmp)
{
if (MAX == vect[j].second) MAX++;
vect[j].second++;
push = true;
}
if (!push) vect.push_back(make_pair(tmp, 1));
}
cout << n - MAX << endl;
}
Есть решение которого нет на сайте? Пиши admin@devexe.top