0105 - Book Index
#include <algorithm> #include <iostream> #include <map> #include <string> #include <vector> using namespace std; void Slove(void) { string word; int page; map<string,vector<int> > index; index.clear(); while (cin >> word >> page) { index[word].push_back(page); sort( index[word].begin(),index[word].end() ); } for (map< string,vector<int> >::iterator map_it=index.begin(); map_it!=index.end(); ++map_it) { cout << (*map_it).first << endl; for (vector<int>::iterator vec_it=(*map_it).second.begin(); vec_it!=(*map_it).second.end(); ++vec_it) { cout << (*vec_it); (vec_it==(*map_it).second.end()-1)? cout << endl : cout << " "; } } } int main(void) { Slove(); return 0; }
語句とpage番号を入れる→並び換えを繰り返して表示する。