Pagini recente » Cod sursa (job #1159597) | Cod sursa (job #110047) | Cod sursa (job #211346) | Cod sursa (job #445900) | Cod sursa (job #2887365)
#import<fstream>
#import<vector>
#import<algorithm>
#import<cstring>
#import<queue>
#import<unordered_set>
#import<string>
using namespace std;
ifstream cin("dijkstra.in");
ofstream cout("dijkstra.out");
vector<vector<pair<int,int>>>a;
vector<int>rez;
main()
{
int n,m;
cin>>n>>m;
a.resize(n+1);
rez.resize(n+1);
for(int i=1;i<=n;i++)
{
rez[i]=2e9;
}
while(m--)
{
int x,y,z;
cin>>x>>y>>z;
a[x].push_back({z,y});
}
rez[1]=0;
priority_queue<pair<int,int>>pri;
pri.push({0,1});
while(!pri.empty())
{
auto c=pri.top();
int x=c.second;
int distx=-c.first;
pri.pop();
if(distx!=rez[x])
continue;
for(auto v:a[c.second])
{
int y=v.second;
int costy=v.first;
if(rez[y]>rez[x]+costy)
{
rez[y]=rez[x]+costy;
pri.push({-rez[y],y});
}
}
}
for(int i=2;i<=n;i++)
{
if(rez[i]!=2e9)
{
cout<<rez[i]<<' ';
}
else
{
cout<<"0 ";
}
}
}