Pagini recente » Cod sursa (job #2350026) | Cod sursa (job #1939532) | Cod sursa (job #2092213) | Cod sursa (job #2630055) | Cod sursa (job #2337103)
#include <bits/stdc++.h>
using namespace std;
ifstream in("dijkstra.in");
ofstream out("dijkstra.out");
const int nx = 50001;
struct arc
{
int nod;
int cost;
};
vector < arc > v[nx];
int dist[nx];
int n,m,i,j,c;
void djikstra (int start)
{
for(int i=1; i<=n; i++)
dist[i]=999999999;
dist[start]=0;
queue < int > q;
q.push(start);
while(!q.empty())
{
int x = q.front();
q.pop();
for(vector < arc > :: iterator it = v[x].begin(); it!=v[x].end(); it++)
if(dist[it->nod]>dist[x]+it->cost)
{
dist[it->nod]=dist[x]+it->cost;
q.push(it->nod);
}
}
for(int i=1; i<=n; i++)
if(i!=start)
out<<dist[i]<<' ';
}
int main()
{
in>>n>>m;
for(; m; m--)
{
in>>i>>j>>c;
v[i].push_back({j,c});
}
djikstra(1);
return 0;
}