Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- using namespace std;
- class Person {
- private:
- map<int, pair<string, string>> m;
- public:
- void ChangeFirstName(const int &year, const string &first_name) {
- m[year].first = first_name;
- }
- void ChangeLastName(const int &year, const string &last_name) {
- m[year].second = last_name;
- }
- string GetFullName(const int &year) {
- auto n = *begin(m);
- if (year < n.first)
- return "Incognito";
- string first_name, last_name;
- for (const pair<int, pair<string, string>> &p : m) {
- if (p.first > year && first_name.empty())
- return last_name + " with unknown first name";
- if (p.first > year && last_name.empty())
- return first_name + " with unknown last name";
- if (p.first > year)
- return first_name + ' ' + last_name;
- if (!p.second.first.empty())
- first_name = p.second.first;
- if (!p.second.second.empty())
- last_name = p.second.second;
- }
- return first_name + ' ' + last_name;
- }
- };
- int main() {
- Person person;
- person.ChangeFirstName(1965, "Polina");
- for (int year : {1964, 1965, 1966, 1967}) {
- cout << person.GetFullName(year) << endl;
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement