class Solution {
public:
vector<string> subdomainVisits(vector<string>& cpdomains) {
unordered_map<string,int>hs;
for(auto s:cpdomains)
{
size_t pos=s.find(" ");
int num=stoi(s.substr(0,pos));
s=s.substr(pos+1);
while(s.size())
{
hs[s]+=num;
pos=s.find(".");
if(pos==string::npos)break;
s=s.substr(pos+1);
}
}
vector<string>res;
for(auto s:hs)
{
res.push_back(to_string(s.second)+" "+s.first);
}
return res;
}
};