artemgf

Кодовые имена

Apr 22nd, 2017
111
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.19 KB | None | 0 0
  1. #include <iostream>
  2. #include <conio.h>
  3. #include <string>
  4. #include <algorithm>
  5. #include <vector>
  6.  
  7. using namespace std;
  8. struct nam
  9. {
  10.     string name[3];
  11. };
  12.  
  13. struct is
  14. {
  15.     int n, d;
  16. };
  17.  
  18. bool d(is p1, is p2)
  19. {
  20.     return p1.n < p2.n;
  21. }
  22.  
  23. string bigger(string one, string two)
  24. {
  25.     if (one < two)
  26.         return one;
  27.     else
  28.         return two;
  29. }
  30.  
  31. int main()
  32. {
  33.     vector <nam> Team;
  34.     vector <string> answer;
  35.     int n, s;
  36.     nam prom;
  37.     string promname;
  38.     bool what = false;
  39.     vector <int> m;
  40.  
  41.     cin >> n;
  42.  
  43.     for (int i = 1; i <= n; i++)
  44.     {
  45.         cin >> prom.name[0] >> prom.name[1] >> prom.name[2];
  46.         Team.push_back(prom);
  47.     }
  48.  
  49.     for (int i = 0; i < n; i++)
  50.     {
  51.         cin >> s;
  52.         m.push_back(s);
  53.     }
  54.  
  55.     answer.push_back(bigger(Team[m[0]-1].name[0], bigger(Team[m[0] - 1].name[1], Team[m[0] - 1].name[2])));
  56.     promname = answer[0];
  57.  
  58.     for (int i = 1; i < n; i++)
  59.     {
  60.         if (promname < Team[m[i] - 1].name[0])
  61.             if (promname < Team[m[i] - 1].name[1])
  62.                 if (promname < Team[m[i] - 1].name[2])
  63.                 {
  64.                     promname = bigger(Team[m[i] - 1].name[0], bigger(Team[m[i] - 1].name[1], Team[m[i] - 1].name[2]));
  65.                     answer.push_back(promname);
  66.                 }
  67.                 else
  68.                 {
  69.                     promname = bigger(Team[m[i] - 1].name[0], Team[m[i] - 1].name[1]);
  70.                     answer.push_back(promname);
  71.                 }
  72.             else
  73.                 if (promname < Team[m[i] - 1].name[2])
  74.                 {
  75.                     promname = bigger(Team[m[i] - 1].name[0], Team[m[i] - 1].name[2]);
  76.                     answer.push_back(promname);
  77.                 }
  78.                 else
  79.                 {
  80.                     promname = Team[m[i] - 1].name[0];
  81.                     answer.push_back(promname);
  82.                 }
  83.         else
  84.             if (promname < Team[m[i] - 1].name[1])
  85.                 if (promname < Team[m[i] - 1].name[2])
  86.                 {
  87.                     promname = bigger(Team[m[i] - 1].name[1], Team[m[i] - 1].name[2]);
  88.                     answer.push_back(promname);
  89.                 }
  90.                 else
  91.                 {
  92.                     promname = Team[m[i] - 1].name[1];
  93.                     answer.push_back(promname);
  94.                 }
  95.             else
  96.                 if (promname < Team[m[i] - 1].name[2])
  97.                 {
  98.                     promname = Team[m[i] - 1].name[2];
  99.                     answer.push_back(promname);
  100.                 }
  101.                 else
  102.                 {
  103.                     cout << "IMPOSSIBLE";
  104.                     what = true;
  105.                     break;
  106.                 }
  107.     }
  108.  
  109.     if(what==false)
  110.         for (auto i = answer.begin(); i != answer.end(); i++)
  111.         {
  112.             cout << *i << endl;
  113.         }
  114.  
  115.     _getch();
  116.     return 0;
  117. }
Advertisement
Add Comment
Please, Sign In to add comment