Pagini recente » Cod sursa (job #1982022) | Istoria paginii runda/fmi-no-stress-3/clasament | Cod sursa (job #2277089) | Profil sebinechita | Cod sursa (job #1833867)
#include <fstream>
#include <vector>
#include <list>
#include <map>
using namespace std;
ifstream fin("dijkstra.in");
ofstream fout("dijkstra.out");
int main()
{
int n,m;
vector<map<int,int>> A;
vector<bool> v;
fin>>n>>m;
A.resize(n);
v.resize(n);
while(m--)
{
int a,b,c;
fin>>a>>b>>c;
A[a-1].emplace(b-1,c);
}
list<int> d;
d.push_back(0);
v[0]=true;
while(d.size())
{
int c=d.front();
d.pop_front();
for(map<int,int>::iterator i=A[c].begin();i!=A[c].end();i++)
{
int key=i->first;
if(A[0][key]==0||A[0][c]+A[c][key]<=A[0][key])
{
A[0][key]=A[0][c]+A[c][key];
if(v[key]==false)
{
d.push_back(key);
v[key]=true;
}
}
}
}
for(int i=1;i<n;i++) fout<<A[0][i]<<" ";
return 0;
}