AOJ 0105 Book Index
概要
語句とページ番号がいくつか与えられる。
辞書順に語句を表示し、対応するページ番号すべてを
昇順で出力する。
解法
STLのmapを使ってやる
コード
#include <iostream> #include <cstdio> #include <cstring> #include <vector> #include <algorithm> #include <string> #include <map> using namespace std; int main() { map<string, vector<int> > m; string s; int page; while (1) { cin >> s >> page; if (cin.eof()) break; m[s].push_back(page); } map<string, vector<int> >::iterator it = m.begin(); while (it != m.end()) { cout << (*it).first << endl; vector<int> v = (*it).second; sort(v.begin(), v.end()); int size = v.size(); for (int i = 0; i < size; i++) { if (i < size-1) printf("%d ", v[i]); else printf("%d\n", v[i]); } ++it; } return 0; }