#include <iostream>
#include <vector>
#include <functional>
#include <iterator>
using namespace std;
struct Cat{
size_t weight, height;
};
int main() {
vector<Cat> cats;
char choice;
bool quit = false;
function<void()> actions[] = {
[&cats]{
Cat cat;
cin >> cat.weight >> cat.height;
cats.push_back(cat);
},
[&cats]{
for(const auto &cat : cats)
cout << "Weight: " << cat.weight << " "
<< "Height: " << cat.height << endl;
},
[&quit]{
quit = true;
}
};
while(cin>>choice && !quit){
auto translatedChoice = choice-'0'-1;
if(choice > '0' && translatedChoice<distance(begin(actions), end(actions)))
actions[translatedChoice]();
else cout << "No action associated to the [" << choice << "] index" << endl;
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8ZnVuY3Rpb25hbD4KI2luY2x1ZGUgPGl0ZXJhdG9yPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKc3RydWN0IENhdHsgCglzaXplX3Qgd2VpZ2h0LCBoZWlnaHQ7IAp9OwoKaW50IG1haW4oKSB7Cgl2ZWN0b3I8Q2F0PiBjYXRzOwoJY2hhciBjaG9pY2U7Cglib29sIHF1aXQgPSBmYWxzZTsKCWZ1bmN0aW9uPHZvaWQoKT4gYWN0aW9uc1tdID0gewoJCVsmY2F0c117CgkJCUNhdCBjYXQ7CgkJCWNpbiA+PiBjYXQud2VpZ2h0ID4+IGNhdC5oZWlnaHQ7CgkJCWNhdHMucHVzaF9iYWNrKGNhdCk7CgkJfSwKCQlbJmNhdHNdewoJCQlmb3IoY29uc3QgYXV0byAmY2F0IDogY2F0cykKCQkJCWNvdXQgPDwgIldlaWdodDogIiA8PCBjYXQud2VpZ2h0IDw8ICIgIgoJCQkJICAgICA8PCAiSGVpZ2h0OiAiIDw8IGNhdC5oZWlnaHQgPDwgZW5kbDsKCQl9LAoJCVsmcXVpdF17CgkJCXF1aXQgPSB0cnVlOwoJCX0KCX07Cgl3aGlsZShjaW4+PmNob2ljZSAmJiAhcXVpdCl7CgkJYXV0byB0cmFuc2xhdGVkQ2hvaWNlID0gY2hvaWNlLScwJy0xOwoJCWlmKGNob2ljZSA+ICcwJyAmJiB0cmFuc2xhdGVkQ2hvaWNlPGRpc3RhbmNlKGJlZ2luKGFjdGlvbnMpLCBlbmQoYWN0aW9ucykpKQoJCQlhY3Rpb25zW3RyYW5zbGF0ZWRDaG9pY2VdKCk7CgkJZWxzZSBjb3V0IDw8ICJObyBhY3Rpb24gYXNzb2NpYXRlZCB0byB0aGUgWyIgPDwgY2hvaWNlIDw8ICJdIGluZGV4IiA8PCBlbmRsOwoJfQoJcmV0dXJuIDA7Cn0=