Pagini recente » Cod sursa (job #2986088) | Cod sursa (job #2513290) | Cod sursa (job #1809546) | Cod sursa (job #2096628) | Cod sursa (job #2645337)
#include <iostream>
#include <queue>
using namespace std;
int n,m,x,y;
int a,b,c,p,i,v;
int d[30001];
vector<pair<int,int>>g[30001];
priority_queue<pair<int,int>,vector<pair<int,int> >,greater<pair<int,int> >>q;
void dijkstra()
{
for (i=1;i<=n;i++) d[i]=(1<<30);
d[x]=0;
q.push(make_pair(x,0));
while (q.size()>0)
{
p=q.top().first;
for (auto a:g[p])
{
v=a.first; // vecin
c=a.second; // cost
if (d[v]>d[p]+c)
{
d[v]=d[p]+c;
q.push(make_pair(v,d[v]));
}
}
q.pop();
}
}
int main()
{
cin>>n>>m>>x>>y;
for (i=1;i<=m;i++)
{
cin>>a>>b>>c;
g[a].push_back(make_pair(b,c));
g[b].push_back(make_pair(a,c));
}
dijkstra();
for (i=1;i<=n;i++) cout<<d[i]<<" ";
}