Pagini recente » Cod sursa (job #2513810) | Cod sursa (job #1547522) | Cod sursa (job #1705763) | Cod sursa (job #955622) | Cod sursa (job #2117276)
#include <fstream>
#include <vector>
#include <queue>
using namespace std;
ifstream cin("dijkstra.in");
ofstream cout("dijkstra.out");
int n,p,x,y,z,i,m;
vector<pair<int,int>> a[50001];
queue<int> Q;
int v[50001];
bool P[50001];
void dijkstra(int x)
{
P[x]=1;
for(Q.push(x);!Q.empty();Q.pop())
{
x=Q.front();
for(auto i:a[x])
if(!P[i.first] && (v[i.first]==0 || v[i.first]>i.second+v[x])) v[i.first]=i.second+v[x],Q.push(i.first);
}
}
int main()
{
cin>>n>>m;
while(cin>>x>>y>>z) a[x].push_back(make_pair(y,z));
dijkstra(1);
for(i=2;i<=n;i++) cout<<v[i]<<" ";
}