Language: C++
/* UVa 12100 - Printer Queue To build using Visual Studio 2012: cl -EHsc -O2 UVa_12100_Printer_Queue.cpp */ #include <iostream> #include <queue> using namespace std; struct job { int i_; int p_; job() {} job(int i, int p) : i_(i), p_(p) {} }; int main() { int t; cin >> t; while (t--) { int n, m; cin >> n >> m; priority_queue<int> pq; queue<job> q; for (int i = 0; i < n; i++) { int p; cin >> p; pq.push(p); q.push(job(i, p)); } int nr = 0; while (true) { int p = pq.top(); pq.pop(); job j; while (true) { j = q.front(); q.pop(); if (j.p_ == p) break; q.push(j); } nr++; if (j.i_ == m) break; } cout << nr << endl; } return 0; }
No comments:
Post a Comment