Cod sursa(job #2297683)

Utilizator marcogoldPop Mihali Marco Silviu marcogold Data 6 decembrie 2018 10:56:34
Problema Algoritmul lui Dijkstra Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.9 kb
#include <iostream>
#include <fstream>
#include <queue>
using namespace std;

ofstream fo("dijkstra.out");
ifstream fi("dijkstra.in");
struct arc
{
    int a,lungime;
};

arc operator <(arc a1,arc a2)
{

  if(a1.lungime<a2.lungime)
    return true;

  return false;
}

int n,m,x1,x2,L;
int drum[50005];
bool viz[50005];
vector<arc> vecini[50005];
priority_queue<arc> coada;
arc citit;


int main()
{

    fi>>n>>m;

    for(int i=1; i<=m; i++)
    {
      fi>>x1>>x2>>L;
      citit.a=x2;
      citit.lungime=L;
      vecini[x1].push_back(citit);


    }


arc pornire;
pornire.a=1
pornire.lungime=0;
coada.push(pornire);


while(!coada.empty())
{
  arc curent=coada.top();

  for(auto vecin:vecini[curent.a] )/// merg pe vecini
  {
    if(viz[vecin]==false)
    {

    drum[vecin]=drum[curent.a]+vecin.lungime;
    }
  }


}





    return 0;
}