Nu aveti permisiuni pentru a descarca fisierul grader_test4.in

Cod sursa(job #1434893)

Utilizator adi_ispas95FMI - Adrian Ispas adi_ispas95 Data 11 mai 2015 16:51:02
Problema Algoritmul lui Dijkstra Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 1.75 kb
#include vector
#include fstream
#include utility
#include queue
  
using namespace std;
  
int vizitat[50010], distanta[50010];
  
int main()
{
    ifstream f(dijkstra.in);
    ofstream g(dijkstra.out);
  
    int i;
    int nr_noduri, nr_muchii, nod_plecare, nod_destinatie, pondere, nod_curent, nod_aux, cost;
  
    vectorpairint,int  graf[50001];
    pairint,int pereche;
    queueint coada;
  
    f  nr_noduri  nr_muchii;
  
    for(i = 0; i  nr_muchii; i++)
        {
            f  nod_plecare  nod_destinatie  pondere;
            pereche = make_pair(nod_destinatie,pondere);
  
            graf[nod_plecare].push_back(pereche);
        }
  
    distanta[1] = 0;
    for(i = 2; i = nr_noduri; i++)
        distanta[i] = 9999;
  
    coada.push(1);
    vizitat[1] = 0;
    while(!coada.empty())
        {
            nod_curent = coada.front();
            vizitat[nod_curent] = 0;
            coada.pop();
  
            for(i = 0; i  graf[nod_curent].size(); i++)
                {
                    nod_aux = graf[nod_curent][i].first;
                    cost = graf[nod_curent][i].second;
  
                    if(distanta[nod_aux]  distanta[nod_curent] + cost)
                        {
                            distanta[nod_aux] = distanta[nod_curent] + cost;
                            if(!vizitat[nod_aux])
                                {
                                    vizitat[nod_aux] = 1;
                                    coada.push(nod_aux);
                                }
                        }
                }
        }
  
    for(i = 2; i = nr_noduri; i++)
        if(distanta[i] == 9999)
            g  0   ;
        else
            g  distanta[i]   ;
  
    return 0;
}