//Dominic Golab //Problem 005 //This program deals with a work log queue depending on the priorities of those jobs #include #include #include #include #include using namespace std; int main(){ map user; string users; int priority; cin >> users; //takes in the owner and job's priority while(cin >> users){ if(users!="*Events*"){ cin >> priority; } else{ break; } user[users]=priority; } int k,l=1; int inserted; string event; string job; map jobs; deque listOfJobs; deque::iterator it; //determines what to do according to the appropriate commands while(cin >> event){ if(event == "Submit" ){ it = listOfJobs.begin(); cin >> users >> job; k = user[users]; jobs[job]=k; if(listOfJobs.empty()==1){ listOfJobs.push_back(job); } else{ inserted=0; for(int i = 0; ijobs[job]){ it = listOfJobs.insert(it,job); inserted = 1; break; } else if(i==(listOfJobs.size())){ it = listOfJobs.insert(it,job); inserted = 1; break; } else{ it++; } } if(inserted==0){ it = listOfJobs.insert(it,job); } } } else if(event == "Run"){ listOfJobs.pop_front(); } else if(event == "Evict"){ cin >> job; for(int i = 0; i> job; listOfJobs.push_front(job); } //displays the queue after each event step cout << "WQ["<< setfill ('0') << setw (4) << l << "] = [ "; for(int j = 0; j