#include<bits/stdc++.h>
using namespace std;
class Kamus{
map<string, set<string>> k;
public:
void tambah(string s, vector<string> v){
for(string t : v){
k[s].insert(t);
k[t].insert(s);
}
}
vector<string> ambilSinonim(string s){
vector<string> arr;
for(string t : k[s]) arr.push_back(t);
return arr;
}
};
int main(){
Kamus kamus;
kamus.tambah("big", {"large", "great"});
kamus.tambah("big", {"huge", "fat"});
kamus.tambah("huge", {"enormous", "gigantic"});
for(auto s : kamus.ambilSinonim("big")){
cout << s << ' ';
}
cout << "\n\n";
for(auto s : kamus.ambilSinonim("huge")){
cout << s << ' ';
}
cout << "\n\n";
for(auto s : kamus.ambilSinonim("gigantic")){
cout << s << ' ';
}
cout << "\n\n";
for(auto s : kamus.ambilSinonim("colossal")){
cout << s << ' ';
}
cout << "\n\n";
}
/*
*/
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmNsYXNzIEthbXVzewogIG1hcDxzdHJpbmcsIHNldDxzdHJpbmc+PiBrOwoKcHVibGljOgogIHZvaWQgdGFtYmFoKHN0cmluZyBzLCB2ZWN0b3I8c3RyaW5nPiB2KXsKICAgIGZvcihzdHJpbmcgdCA6IHYpewogICAgICBrW3NdLmluc2VydCh0KTsKICAgICAga1t0XS5pbnNlcnQocyk7CiAgICB9IAogIH0KCiAgdmVjdG9yPHN0cmluZz4gYW1iaWxTaW5vbmltKHN0cmluZyBzKXsKICAgIHZlY3RvcjxzdHJpbmc+IGFycjsKICAgIGZvcihzdHJpbmcgdCA6IGtbc10pIGFyci5wdXNoX2JhY2sodCk7CiAgICByZXR1cm4gYXJyOwogIH0KfTsKCmludCBtYWluKCl7CiAgS2FtdXMga2FtdXM7CiAga2FtdXMudGFtYmFoKCJiaWciLCB7ImxhcmdlIiwgImdyZWF0In0pOwogIGthbXVzLnRhbWJhaCgiYmlnIiwgeyJodWdlIiwgImZhdCJ9KTsKICBrYW11cy50YW1iYWgoImh1Z2UiLCB7ImVub3Jtb3VzIiwgImdpZ2FudGljIn0pOwoKICBmb3IoYXV0byBzIDoga2FtdXMuYW1iaWxTaW5vbmltKCJiaWciKSl7CiAgICBjb3V0IDw8IHMgPDwgJyAnOyAKICB9CiAgY291dCA8PCAiXG5cbiI7CgogIGZvcihhdXRvIHMgOiBrYW11cy5hbWJpbFNpbm9uaW0oImh1Z2UiKSl7CiAgICBjb3V0IDw8IHMgPDwgJyAnOyAKICB9CiAgY291dCA8PCAiXG5cbiI7CgogIGZvcihhdXRvIHMgOiBrYW11cy5hbWJpbFNpbm9uaW0oImdpZ2FudGljIikpewogICAgY291dCA8PCBzIDw8ICcgJzsgCiAgfQogIGNvdXQgPDwgIlxuXG4iOwoKICBmb3IoYXV0byBzIDoga2FtdXMuYW1iaWxTaW5vbmltKCJjb2xvc3NhbCIpKXsKICAgIGNvdXQgPDwgcyA8PCAnICc7IAogIH0KICBjb3V0IDw8ICJcblxuIjsKCn0KCi8qCgoKKi8=