Advertisement
Guest User

class Person

a guest
Sep 22nd, 2019
131
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.19 KB | None | 0 0
  1. class Person {
  2. public:
  3.     void ChangeFirstName(int year, const string& first_name) {
  4.         // добавить факт изменения имени на first_name в год year
  5.         years_names.insert(year);
  6.         name[year] = first_name;
  7.     }
  8.     void ChangeLastName(int year, const string& last_name) {
  9.         // добавить факт изменения фамилии на last_name в год year
  10.         years_surnames.insert(year);
  11.         surname[year] = last_name;
  12.     }
  13.     string GetFullName(int year) {
  14.         // получить имя и фамилию по состоянию на конец года year
  15.         int tmp = -10000, tmp2 = -10000;
  16.         for (const auto& i : years_names) {
  17.             if (year >= i)
  18.                 tmp = i;
  19.         }
  20.         for (const auto& i : years_surnames) {
  21.             if (year >= i)
  22.                 tmp2 = i;
  23.         }
  24.         if (tmp == -10000 && tmp2 - 10000)
  25.             return "Incognito";
  26.         else if (tmp != -10000 && tmp2 == -10000)
  27.             return name[tmp] + " with unknown last name";
  28.         else if (tmp2 != -10000 && tmp == -10000)
  29.             return surname[tmp2] + " with unknown first name";
  30.         else
  31.             return name[tmp] + " " + surname[tmp2];
  32.     }
  33. private:
  34.     set<int> years_names;
  35.     set<int> years_surnames;
  36.     map <int, string> name;
  37.     map <int, string> surname;
  38. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement