int main()
{
vector<pair<char,int> > items = { {'a', 10}, {'b',20}, {'c',30}, {'d', 40}, {'a', 30},{'d',10} };
set< pair<int,char> > s;
map<char,int> mp;
for(auto e:items)
{
if(mp.find(e.first)==mp.end())
{
s.insert({e.second,e.first});
mp[e.first] = e.second;
}
else
{
s.erase({mp[e.first],e.first});
mp[e.first] = e.second;
s.insert({mp[e.first],e.first});
}
}
int k = 2;
for(auto it=s.rbegin();it!=s.rend()&&k;it++)
{
cout<<it->second<<"-"<<it->first<<"\n";
k--;
}
return 0;
}```
//Output
//c-30
//a-30