Cod sursa(job #3274201)

Utilizator CiorpionanRoman Matei-Ciprian Ciorpionan Data 5 februarie 2025 18:09:39
Problema BFS - Parcurgere in latime Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.86 kb
#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;
}