백준 16165
> map에도 vector 자료형 쓸 수 있음
=> map<string,vector<string>> m
=> m[a].push_back(b), m[a].push_back(c), m[a].push_back(d)
=> a -> b,c,d 로 표현 가능
#include <bits/stdc++.h>
#include<unordered_set>
#include<unordered_map>
using namespace std;
int n, m;
int main() {
ios::sync_with_stdio(0); cin.tie(0);
cin >> n >> m;
map<string, vector<string>> um_group;
unordered_map < string, string> um_member;
while (n--) {
string s;
cin >> s;
int cnt;
cin >> cnt;
while (cnt--) {
string name;
cin >> name;
um_group[s].push_back(name);
um_member[name] = s;
}
sort(um_group[s].begin(), um_group[s].end());
}
while (m--) {
string s;
int t;
cin >> s >> t;
if (t==0) {
for (auto c : um_group[s]) cout << c << '\n';
}
else {
cout << um_member[s] << '\n';
}
}
}