Pagini recente » Cod sursa (job #558004) | Cod sursa (job #2869094) | Cod sursa (job #901522) | Cod sursa (job #2596634) | Cod sursa (job #1600099)
#include <fstream>
#include <vector>
using namespace std;
ifstream f("dijkstra.in");
ofstream g("dijkstra.out");
const int NMAX = 50001;
const int INF = 5000001;
struct nodstruct
{
int nod1, nod2, dist;
};
nodstruct v[NMAX];
int d[NMAX];
int n, m;
void initializare()
{
for (int i = 1; i <= n; i++)
d[i] = INF;
d[1] = 0;
}
int main()
{
int i, j, a, b, c;
f >> n >> m;
for(i = 1; i <= m; i++)
{
f >> a >> b >> c;
v[i].nod1 = a;
v[i].nod2 = b;
v[i].dist = c;
}
initializare();
for(i = 2; i <= n; i++)
{
for(j = 1; j <= m; j++)
if( d[ v[j].nod1 ] + v[j].dist < d[ v[j].nod2 ])
d[ v[j].nod2 ] = d[ v[j].nod1 ] + v[j].dist;
}
for(int i = 2; i <= n; i++)
{
if( d[i] == INF )
g << 0 << ' ';
else g << d[i] << ' ';
}
return 0;
}