#include <string>
#include <vector>
#include <algorithm>
#include <set>
#include <map>
#include <iostream>
using namespace std;
class Person {
public:
void ChangeFirstName(int year, const string &first_name) {
year_to_name.emplace_back(year, make_pair(first_name, ""));
}
void ChangeLastName(int year, const string &last_name) {
year_to_name.emplace_back(year, make_pair("", last_name));
}
string GetFullName(int year) {
}
private:
vector<pair<int, pair<string, string>>> year_to_name;
};
int main() {
Person person;
person.ChangeFirstName(1965, "Polina");
person.ChangeLastName(1967, "Sergeeva");
for (int year : {1900, 1965, 1990}) {
cout << person.GetFullName(year) << endl;
}
person.ChangeFirstName(1970, "Appolinaria");
for (int year : {1969, 1970}) {
cout << person.GetFullName(year) << endl;
}
person.ChangeLastName(1968, "Volkova");
for (int year : {1969, 1970}) {
cout << person.GetFullName(year) << endl;
}
return 0;
}
I2luY2x1ZGUgPHN0cmluZz4KI2luY2x1ZGUgPHZlY3Rvcj4KI2luY2x1ZGUgPGFsZ29yaXRobT4KI2luY2x1ZGUgPHNldD4KI2luY2x1ZGUgPG1hcD4KI2luY2x1ZGUgPGlvc3RyZWFtPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmNsYXNzIFBlcnNvbiB7CnB1YmxpYzoKICAgIHZvaWQgQ2hhbmdlRmlyc3ROYW1lKGludCB5ZWFyLCBjb25zdCBzdHJpbmcgJmZpcnN0X25hbWUpIHsKICAgICAgICB5ZWFyX3RvX25hbWUuZW1wbGFjZV9iYWNrKHllYXIsIG1ha2VfcGFpcihmaXJzdF9uYW1lLCAiIikpOwogICAgfQoKICAgIHZvaWQgQ2hhbmdlTGFzdE5hbWUoaW50IHllYXIsIGNvbnN0IHN0cmluZyAmbGFzdF9uYW1lKSB7CiAgICAgICAgeWVhcl90b19uYW1lLmVtcGxhY2VfYmFjayh5ZWFyLCBtYWtlX3BhaXIoIiIsIGxhc3RfbmFtZSkpOwogICAgfQoKICAgIHN0cmluZyBHZXRGdWxsTmFtZShpbnQgeWVhcikgewogICAgfQoKcHJpdmF0ZToKICAgIHZlY3RvcjxwYWlyPGludCwgcGFpcjxzdHJpbmcsIHN0cmluZz4+PiB5ZWFyX3RvX25hbWU7Cn07CgppbnQgbWFpbigpIHsKICAgIFBlcnNvbiBwZXJzb247CgogICAgcGVyc29uLkNoYW5nZUZpcnN0TmFtZSgxOTY1LCAiUG9saW5hIik7CiAgICBwZXJzb24uQ2hhbmdlTGFzdE5hbWUoMTk2NywgIlNlcmdlZXZhIik7CiAgICBmb3IgKGludCB5ZWFyIDogezE5MDAsIDE5NjUsIDE5OTB9KSB7CiAgICAgICAgY291dCA8PCBwZXJzb24uR2V0RnVsbE5hbWUoeWVhcikgPDwgZW5kbDsKICAgIH0KCiAgICBwZXJzb24uQ2hhbmdlRmlyc3ROYW1lKDE5NzAsICJBcHBvbGluYXJpYSIpOwogICAgZm9yIChpbnQgeWVhciA6IHsxOTY5LCAxOTcwfSkgewogICAgICAgIGNvdXQgPDwgcGVyc29uLkdldEZ1bGxOYW1lKHllYXIpIDw8IGVuZGw7CiAgICB9CgogICAgcGVyc29uLkNoYW5nZUxhc3ROYW1lKDE5NjgsICJWb2xrb3ZhIik7CiAgICBmb3IgKGludCB5ZWFyIDogezE5NjksIDE5NzB9KSB7CiAgICAgICAgY291dCA8PCBwZXJzb24uR2V0RnVsbE5hbWUoeWVhcikgPDwgZW5kbDsKICAgIH0KCiAgICByZXR1cm4gMDsKfQo=