#include <iostream>
#include <map>
using namespace std;
typedef map<string, void(*)()> Foo;
void call(const Foo& foo, const string& val, void(*defaultValue)() = NULL)
{
auto it = foo.find(val);
if (it == foo.end())
{
if (defaultValue)
{
defaultValue();
}
}
else
{
if (it->second)
{
it->second();
}
}
}
int main()
{
Foo foo;
foo["asd"] = [](){ cout << "wybrales asd" << endl; };
foo["xxx"] = [](){ cout << "wybrales xxx" << endl; };
foo["yyy"] = [](){ cout << "wybrales yyy" << endl; };
string s;
while (cin >> s)
{
call(foo, s, [](){ cout << "nie ma takiej opcji :(" << endl; });
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8bWFwPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCnR5cGVkZWYgbWFwPHN0cmluZywgdm9pZCgqKSgpPiBGb287Cgp2b2lkIGNhbGwoY29uc3QgRm9vJiBmb28sIGNvbnN0IHN0cmluZyYgdmFsLCB2b2lkKCpkZWZhdWx0VmFsdWUpKCkgPSBOVUxMKQp7CiAgYXV0byBpdCA9IGZvby5maW5kKHZhbCk7CiAgaWYgKGl0ID09IGZvby5lbmQoKSkKICB7CiAgICBpZiAoZGVmYXVsdFZhbHVlKQogICAgewogICAgCWRlZmF1bHRWYWx1ZSgpOwogICAgfQogIH0KICBlbHNlCiAgewogIAlpZiAoaXQtPnNlY29uZCkKICAJewogIAkJaXQtPnNlY29uZCgpOwogIAl9CiAgfQp9CgppbnQgbWFpbigpCnsKCUZvbyBmb287Cglmb29bImFzZCJdID0gW10oKXsgY291dCA8PCAid3licmFsZXMgYXNkIiA8PCBlbmRsOyB9OwoJZm9vWyJ4eHgiXSA9IFtdKCl7IGNvdXQgPDwgInd5YnJhbGVzIHh4eCIgPDwgZW5kbDsgfTsKCWZvb1sieXl5Il0gPSBbXSgpeyBjb3V0IDw8ICJ3eWJyYWxlcyB5eXkiIDw8IGVuZGw7IH07CgkKCXN0cmluZyBzOwoJd2hpbGUgKGNpbiA+PiBzKQoJewoJICBjYWxsKGZvbywgcywgW10oKXsgY291dCA8PCAibmllIG1hIHRha2llaiBvcGNqaSA6KCIgPDwgZW5kbDsgfSk7Cgl9CgkKCXJldHVybiAwOwp9