#include <bits/stdc++.h>
using namespace std;
int main()
{
// index 1 2 3 4 5 6 7 8 9
int b[9] = {5 , 5 , 5 , 3 , 3 , 2 , 2 , 1 , 1};
int n = 9;
b[n+1] = 0; // 1 - based indexing
/*
Element , frequency
5 3
3 2
2 2
1 2
*/
unordered_map<int,int>k;
for(int i=1; i<=n; i++)
{
k[b[i]] = k[b[i]] + 1;
}
/*
<(5,3)<5 , 3>>g; // g(5,3)
<(3,2)<3 , 2>g; // g(3,2)
<(2,2)<2 , 2>g; // g(2,2)
<(1,2)<1 , 2>g; // g(1.2)
*/
vector<pair<int,int>>g;
for(auto u=k.begin(); u!=k.end(); u++) // u is an iterator
{
// Element Frequency
g.push_back({u->first, u->second}); // to access 'u' . dot operator we not arrow -> symbol we use to acess it
}
int size = g.size(); // map size
int step = 0;
for(int i=size - 1; i>=1; i--)
{
g[i-1].second = g[i-1].second + g[i].second;
step = step + g[i].second;
g[i].second = 0;
}
cout<<step<<endl;
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgppbnQgbWFpbigpIAp7CiAgICAvLyBpbmRleCAgICAxICAgMiAgICAzICAgNCAgIDUgIDYgICA3ICAgOCAgIDkKICAgIGludCBiWzldID0gezUgLCA1ICwgNSAsIDMgLCAzICwgMiAsIDIgLCAxICwgMX07CiAgICBpbnQgbiA9IDk7CgogICAgYltuKzFdID0gMDsgLy8gMSAtIGJhc2VkIGluZGV4aW5nCiAgICAvKgogICAgRWxlbWVudCAsIGZyZXF1ZW5jeSAKICAgICAgICAgICA1ICAgICAgICAgICAgIDMKICAgICAgICAgICAzICAgICAgICAgICAgIDIKICAgICAgICAgICAyICAgICAgICAgICAgIDIKICAgICAgICAgICAxICAgICAgICAgICAgIDIKICAgICovCiAgICB1bm9yZGVyZWRfbWFwPGludCxpbnQ+azsKICAgIGZvcihpbnQgaT0xOyBpPD1uOyBpKyspCiAgICB7CiAgICAgICAga1tiW2ldXSA9IGtbYltpXV0gKyAxOwogICAgfQoKICAgIC8qIAogICAgICA8KDUsMyk8NSAsIDM+Pmc7IC8vIGcoNSwzKQogICAgICA8KDMsMik8MyAsIDI+ZzsgLy8gZygzLDIpCiAgICAgIDwoMiwyKTwyICwgMj5nOyAvLyBnKDIsMikKICAgICAgPCgxLDIpPDEgLCAyPmc7IC8vIGcoMS4yKQogICAgICAKICAgICovCiAgICB2ZWN0b3I8cGFpcjxpbnQsaW50Pj5nOwogICAgZm9yKGF1dG8gIHU9ay5iZWdpbigpOyAgdSE9ay5lbmQoKTsgIHUrKykgLy8gdSBpcyBhbiBpdGVyYXRvcgogICAgewoKICAgICAgICAvLyAgICAgICAgICAgICAgICAgICAgIEVsZW1lbnQgIEZyZXF1ZW5jeQogICAgICAgIGcucHVzaF9iYWNrKHt1LT5maXJzdCwgdS0+c2Vjb25kfSk7IC8vIHRvIGFjY2VzcyAndScgLiBkb3Qgb3BlcmF0b3Igd2Ugbm90IGFycm93IC0+IHN5bWJvbCB3ZSB1c2UgdG8gYWNlc3MgaXQgCiAgICB9CgogICAgaW50IHNpemUgPSBnLnNpemUoKTsgLy8gbWFwIHNpemUKICAgIGludCBzdGVwID0gMDsKCiAgICBmb3IoaW50IGk9c2l6ZSAtIDE7ICBpPj0xOyAgaS0tKQogICAgewogICAgICAgIGdbaS0xXS5zZWNvbmQgPSBnW2ktMV0uc2Vjb25kICsgZ1tpXS5zZWNvbmQ7CiAgICAgICAgc3RlcCA9IHN0ZXAgKyBnW2ldLnNlY29uZDsKICAgICAgICBnW2ldLnNlY29uZCA9IDA7CiAgICB9CiAgICBjb3V0PDxzdGVwPDxlbmRsOwoKICAgIHJldHVybiAwOwp9