#include <bits/stdc++.h>
using namespace std;
int main() {
int arr[] = {1 , 2, 1, 4, 3, 1};
int n = 6;
unordered_map<int, int> ump; // The first int stores the value of the integer and the second int stores its frequency
for (int i = 0; i < n; ++i) {
ump[arr[i]]++;
}
int maxfreqsofar = 0; //maxfreqsofar is the highest frequency found so far
for (auto x : ump) {
// If the frequency of x is greater than maxfreq then x is the current highest frequent element
if (x.second > maxfreqsofar) {
maxfreqsofar = x.second;
}
}
cout << "The minimum number of operations required to make all elements equal is: " << (n - maxfreqsofar) << endl;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgppbnQgbWFpbigpIHsKCWludCBhcnJbXSA9IHsxICwgMiwgMSwgNCwgMywgMX07CglpbnQgbiA9IDY7CgoJdW5vcmRlcmVkX21hcDxpbnQsIGludD4gdW1wOyAvLyBUaGUgZmlyc3QgaW50IHN0b3JlcyB0aGUgdmFsdWUgb2YgdGhlIGludGVnZXIgYW5kIHRoZSBzZWNvbmQgaW50IHN0b3JlcyBpdHMgZnJlcXVlbmN5Cglmb3IgKGludCBpID0gMDsgaSA8IG47ICsraSkgewoJCXVtcFthcnJbaV1dKys7Cgl9CgoJaW50IG1heGZyZXFzb2ZhciA9IDA7IC8vbWF4ZnJlcXNvZmFyIGlzIHRoZSBoaWdoZXN0IGZyZXF1ZW5jeSBmb3VuZCBzbyBmYXIKCWZvciAoYXV0byB4IDogdW1wKSB7CgkJLy8gSWYgdGhlIGZyZXF1ZW5jeSBvZiB4IGlzIGdyZWF0ZXIgdGhhbiBtYXhmcmVxIHRoZW4geCBpcyB0aGUgY3VycmVudCBoaWdoZXN0IGZyZXF1ZW50IGVsZW1lbnQKCQlpZiAoeC5zZWNvbmQgPiBtYXhmcmVxc29mYXIpIHsKCQkJbWF4ZnJlcXNvZmFyID0geC5zZWNvbmQ7CgkJfQoJfQoKCWNvdXQgPDwgIlRoZSBtaW5pbXVtIG51bWJlciBvZiBvcGVyYXRpb25zIHJlcXVpcmVkIHRvIG1ha2UgYWxsIGVsZW1lbnRzIGVxdWFsIGlzOiAiIDw8IChuIC0gbWF4ZnJlcXNvZmFyKSA8PCBlbmRsOwoKfQ==