AOJ 0105: Book Index
vector を使い、ソートします。
vector<pair<string,vector<int> > > data; map<string,int> sf; int main(){ string s; int a,k = 0; while(cin>>s>>a){ if(!sf.count(s)){ sf[s] = k++; data.push_back(make_pair(s,vector<int> ())); } data[sf[s]].second.push_back(a); } sort(data.begin(),data.end()); for(int i = 0; i < data.size(); i++){ cout<<data[i].first<<endl; sort(data[i].second.begin(),data[i].second.end()); for(int j = 0,l = data[i].second.size(); j < l; j++){ cout<<data[i].second[j]; if(j == l-1)cout<<endl; else cout<<' '; } } return 0; }