Pagini recente » Cod sursa (job #2644910) | Cod sursa (job #728951) | Cod sursa (job #2424349) | Cod sursa (job #297449) | Cod sursa (job #1643628)
#include <fstream>
#include <vector>
using namespace std;
ifstream fin("dijkstra.in");
ofstream fout("dijkstra.out");
vector< pair<int, int> > g[50010];
int n, m, x, y, d, p, u;
int dist[50010];
int coada[50010];
bool viz[50010];
int main()
{
fin>>n>>m;
for(int i=1;i<=m;i++)
{
fin>>x>>y>>d;
g[x].push_back(make_pair(y, d));
g[y].push_back(make_pair(x, d));
}
for(int i=2;i<=n;i++)
dist[i]=2000000000;
p=u=1;
coada[1]=1;
viz[1]=1;
while(p<=u)
{
viz[coada[p]]=0;
for(int i=0; i<g[coada[p]].size(); i++)
if(g[coada[p]][i].second+dist[coada[p]]<dist[g[coada[p]][i].first])
{
coada[++u]=g[coada[p]][i].first;
dist[g[coada[p]][i].first]=g[coada[p]][i].second+dist[coada[p]];
viz[g[coada[p]][i].first]=1;
}
p++;
}
for(int i=2;i<=n;i++)
fout<<dist[i]<<' ';
return 0;
}