Pagini recente » Cod sursa (job #879587) | Cod sursa (job #2221813) | Cod sursa (job #1815915) | Cod sursa (job #585130) | Cod sursa (job #468717)
Cod sursa(job #468717)
#include <fstream>
#define nmax 50000
#define INF 50000
using namespace std;
ifstream f("dijkstra.in");
ofstream g("dijkstra.out");
long long U[nmax], D[nmax], C[10000][10000], N, M;
void dijkstra()
{
int min, nod, i;
D[1] = 1;
while(1)
{
min = INF;
nod = -1;
for(i=1; i<=N; ++i)
{
if(!U[i] && min > D[i])
{
min = D[i];
nod = i;
}
}
if(min == INF) break;
U[nod] = 1;
for(i=1; i<=N; ++i)
if(D[i] > D[nod] + C[nod][i])
{
D[i] = D[nod] + C[nod][i];
// T[i] = nod;
}
}
}
int main()
{
int i, x, y, c;
f >> N >> M;
for(; M>0; --M)
{
f >> x >> y >> c;
C[x][y] = c;
}
dijkstra();
for(i=2; i<=N; ++i)
g << D[i] << " ";
return 0;
}