mitakvd

3. Twins

Nov 24th, 2019
202
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.61 KB | None | 0 0
  1. #include <iostream>
  2. #include <string>
  3. #include <sstream>
  4. #include <queue>
  5.  
  6. using namespace std;
  7.  
  8. void readInput(int lines, queue<pair<string, int>> &mimiQueue, queue<pair<string, int>> &pepiQueue)
  9. {
  10.     for (int i = 0; i < lines; i++)
  11.     {
  12.         string line;
  13.         getline(cin, line);
  14.         istringstream istr(line);
  15.         string nameOfTwin, name, numberInStr;
  16.         istr >> nameOfTwin >> name >> numberInStr;
  17.  
  18.         int number = stoi(numberInStr);
  19.  
  20.         if (nameOfTwin == "Pepi")
  21.         {
  22.             pepiQueue.push(make_pair(name, number));
  23.         }
  24.         else
  25.         {
  26.             mimiQueue.push(make_pair(name, number));
  27.         }
  28.     }
  29. }
  30.  
  31. void printData(queue<pair<string, int>>& mimiQueue, queue<pair<string, int>>& pepiQueue)
  32. {
  33.     int minutes;
  34.     cin >> minutes;
  35.     int counterPepi = 0;
  36.     int counterMimi = 0;
  37.  
  38.     for (int i = 1; i <= minutes; i++)
  39.     {
  40.         if (pepiQueue.empty())
  41.         {
  42.             cout << "Pepi Idle" << endl;
  43.         }
  44.         else
  45.         {
  46.             pair<string, int> pepiPair = pepiQueue.front();
  47.             cout << "Pepi processing " << pepiPair.first << endl;
  48.             ++counterPepi;
  49.             if (pepiPair.second == counterPepi)
  50.             {
  51.                 pepiQueue.pop();
  52.                 counterPepi = 0;
  53.             }
  54.         }
  55.  
  56.         if (mimiQueue.empty())
  57.         {
  58.             cout << "Mimi Idle" << endl;
  59.         }
  60.         else
  61.         {
  62.             pair<string, int> mimiPair = mimiQueue.front();
  63.             cout << "Mimi processing " << mimiPair.first << endl;
  64.             ++counterMimi;
  65.             if (mimiPair.second == counterMimi)
  66.             {
  67.                 mimiQueue.pop();
  68.                 counterMimi = 0;
  69.             }
  70.         }
  71.     }
  72. }
  73.  
  74. int main()
  75. {
  76.     int numberOfLines;
  77.     cin >> numberOfLines;
  78.     cin.ignore();
  79.  
  80.     queue<pair<string, int>> mimi, pepi;
  81.  
  82.     readInput(numberOfLines, mimi, pepi);
  83.    
  84.     printData(mimi, pepi);
  85.    
  86.     return 0;
  87. }
Advertisement
Add Comment
Please, Sign In to add comment