Pagini recente » Cod sursa (job #839141) | Cod sursa (job #3038637) | Cod sursa (job #2423520) | Cod sursa (job #804637) | Cod sursa (job #2125151)
#include <iostream>
#include <fstream>
#include <queue>
#define INF 999999999
#define SIZE_N 50003
#define SIZE_M 501
using namespace std;
int main()
{
ifstream inStream("dijkstra.in");
ofstream outStream("dijkstra.out");
int d[SIZE_N];
int matriceCosturi[SIZE_M][SIZE_M] = {0};
int n, m;
int nodA, nodB, cost;
queue<int> coada;
int visited[SIZE_N] = {0};
inStream >> n >> m;
for(int i = 0; i < m; i++) {
inStream >> nodA >> nodB >> cost;
matriceCosturi[nodA][nodB] = cost;
}
for(int i = 2; i <= n; i++) d[i] = INF;
d[1] = 0;
coada.push(1);
while(!coada.empty()) {
int nod = coada.front();
coada.pop();
for(int i = 1; i <= n; i++) {
if(matriceCosturi[nod][i] != 0) {
if(d[i] > matriceCosturi[nod][i] + d[nod]) {
coada.push(i);
d[i] = matriceCosturi[nod][i] + d[nod];
}
}
}
}
/*for(int i = 1; i <= n; i++) {
for(int j = 1; j <= n; j++) {
cout << matriceCosturi[i][j] << " ";
}
cout << endl;
}*/
for(int i = 2; i <= n; i++) {
outStream << d[i] << " ";
}
return 0;
}