Pagini recente » Istoria paginii runda/sos_dp_cu_segtree_beats_persistent | Cod sursa (job #1714212) | Profil dianav13 | Cod sursa (job #1633200) | Cod sursa (job #2202372)
#include <bits/stdc++.h>
#define D 50001
using namespace std;
ifstream fin("dijkstra.in");
ofstream fout("dijkstra.out");
priority_queue < pair <int,int> > pq;
vector <pair <int,int > > v[D];
int dist[D];
int x,y;
void dijkstra(void)
{ dist[1]=0; pq.push({0,1});
while(!pq.empty())
{ y=pq.top().second;
x=pq.top().first;
for(auto i:v[y])
{ cout<<-x-i.second<<" ";
if(dist[i.first]>-x-i.second)
{
dist[i.first]=-x-i.second;
pq.push({-dist[i.first],i.second});
}
}
pq.pop();
}
}
int a,b,c,n,m;
int main()
{
fin>>n>>m;
for(int i=1;i<=m;i++)
{
fin>>a>>b>>c;
v[b].push_back({a,-c});
v[a].push_back({b,-c});
}
for(int i=1;i<=n;i++)
dist[i]=999999999;
dijkstra();
for(int i=2;i<=n;i++)
{
fout<<dist[i]<<' ';
}
return 0;
}