Advertisement
_takumi

Имена_и_фамилии

Aug 11th, 2019
463
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.15 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. class Person {
  5. private:
  6.     map<int, pair<string, string>> m;
  7. public:
  8.     void ChangeFirstName(const int &year, const string &first_name) {
  9.         m[year].first = first_name;
  10.     }
  11.     void ChangeLastName(const int &year, const string &last_name) {
  12.         m[year].second = last_name;
  13.     }
  14.     string GetFullName(const int &year) {
  15.         auto n = *begin(m);
  16.         if (year < n.first)
  17.             return "Incognito";
  18.         string first_name, last_name;
  19.         for (const pair<int, pair<string, string>> &p : m) {
  20.             if (p.first > year && first_name.empty())
  21.                 return last_name + " with unknown first name";
  22.             if (p.first > year && last_name.empty())
  23.                 return first_name + " with unknown last name";
  24.             if (p.first > year)
  25.                 return first_name + ' ' + last_name;
  26.             if (!p.second.first.empty())
  27.                 first_name = p.second.first;
  28.             if (!p.second.second.empty())
  29.                 last_name = p.second.second;
  30.         }
  31.         return first_name + ' ' + last_name;
  32.     }
  33. };
  34.  
  35. int main() {
  36.       Person person;
  37.  
  38.       person.ChangeFirstName(1965, "Polina");
  39.       for (int year : {1964, 1965, 1966, 1967}) {
  40.         cout << person.GetFullName(year) << endl;
  41.       }
  42.  
  43.   return 0;
  44. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement