std::queue バージョン。
#include <iostream> #include <queue> using namespace std; struct Process { string name; int time; }; static void inputProcess(queue<Process>& processQueue, int n) { Process in; for (int i = 0; i < n; i++) { cin >> in.name >> in.time; processQueue.push(in); } } int main() { int n, q; cin >> n >> q; queue<Process> processQueue; inputProcess(processQueue, n); int total = 0; while (!processQueue.empty()) { Process now = processQueue.front(); processQueue.pop(); if (now.time <= q) { total += now.time; cout << now.name << ' ' << total << endl; } else { now.time -= q; total += q; processQueue.push(now); } } return 0; }
問題の趣旨としては、stack も queue もフルスクラッチで書け、ということかもしれませんが、cpp かつ STL も使える環境で使わないのはなあ。。と思いました。