Pagini recente » Cod sursa (job #2602623) | Cod sursa (job #7297) | Cod sursa (job #779422) | Cod sursa (job #568200) | Cod sursa (job #3274201)
#include <fstream>
#include <queue>
using namespace std;
int main()
{
ifstream in("proc2.in");
ofstream out("proc2.out");
int n, m;
in >> n >> m;
priority_queue <int, vector <int>, greater<int>> libere;
priority_queue <pair <int, int>, vector <pair<int, int>>, greater<pair <int, int>>> ocupate;
for (int i = 1; i <= n; i++){
libere.push(i);
}
for (int i = 1; i <= m; i++){
int ti, durata, tf;
in >> ti >> durata;
tf = ti+durata;
while (!ocupate.empty() && ocupate.top().first <= ti){
int procesorul = ocupate.top().second;
libere.push(procesorul);
ocupate.pop();
}
int procesorul = libere.top();
libere.pop();
out << procesorul << "\n";
ocupate.push({tf, procesorul});
}
return 0;
}