Pagini recente » Cod sursa (job #1010490) | Cod sursa (job #1673428) | Cod sursa (job #2149657) | Rating Pap Catalin (Catapa) | Cod sursa (job #2446645)
#include <bits/stdc++.h>
#define st first
#define nd second
#define pb push_back
#define NMAX 50005
#define INF 2000000000
using namespace std;
typedef long long ll;
ll n, m, i, j, x, y, c, ans[NMAX], a, b;
vector<pair<int,int>>v[NMAX], vi[NMAX];
priority_queue <pair<int,int>> q;
bool viz[NMAX];
void fast()
{
//ios_base::sync_with_stdio(false);
//cin.tie();
freopen("dijkstra.in","r",stdin);
freopen("dijkstra.out","w",stdout);
}
int main()
{
fast();
cin>>n>>m;
for(i=1;i<=m;i++)
{
cin>>x>>y>>c;
v[x].pb({y,c});
}
ans[1]=0;
for(i=2;i<=n;i++)
ans[i]=INF;
q.push({1,ans[1]});
while(!q.empty())
{
a=q.top().st;
int d1=q.top().nd;
viz[a]=0;
q.pop();
for(auto i:v[a])
{
b=i.st;
c=i.nd;
if(ans[b]>ans[a]+c)
{
ans[b]=ans[a]+c;
if(!viz[b])
{
viz[b]=1;
q.push({b,ans[b]});
}
}
}
}
for(i=2;i<=n;i++)
cout<<ans[i]<<' ';
return 0;
}