Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <string>
- #include <sstream>
- #include <queue>
- using namespace std;
- void readInput(int lines, queue<pair<string, int>> &mimiQueue, queue<pair<string, int>> &pepiQueue)
- {
- for (int i = 0; i < lines; i++)
- {
- string line;
- getline(cin, line);
- istringstream istr(line);
- string nameOfTwin, name, numberInStr;
- istr >> nameOfTwin >> name >> numberInStr;
- int number = stoi(numberInStr);
- if (nameOfTwin == "Pepi")
- {
- pepiQueue.push(make_pair(name, number));
- }
- else
- {
- mimiQueue.push(make_pair(name, number));
- }
- }
- }
- void printData(queue<pair<string, int>>& mimiQueue, queue<pair<string, int>>& pepiQueue)
- {
- int minutes;
- cin >> minutes;
- int counterPepi = 0;
- int counterMimi = 0;
- for (int i = 1; i <= minutes; i++)
- {
- if (pepiQueue.empty())
- {
- cout << "Pepi Idle" << endl;
- }
- else
- {
- pair<string, int> pepiPair = pepiQueue.front();
- cout << "Pepi processing " << pepiPair.first << endl;
- ++counterPepi;
- if (pepiPair.second == counterPepi)
- {
- pepiQueue.pop();
- counterPepi = 0;
- }
- }
- if (mimiQueue.empty())
- {
- cout << "Mimi Idle" << endl;
- }
- else
- {
- pair<string, int> mimiPair = mimiQueue.front();
- cout << "Mimi processing " << mimiPair.first << endl;
- ++counterMimi;
- if (mimiPair.second == counterMimi)
- {
- mimiQueue.pop();
- counterMimi = 0;
- }
- }
- }
- }
- int main()
- {
- int numberOfLines;
- cin >> numberOfLines;
- cin.ignore();
- queue<pair<string, int>> mimi, pepi;
- readInput(numberOfLines, mimi, pepi);
- printData(mimi, pepi);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment