Pagini recente » Cod sursa (job #2600556) | Cod sursa (job #152199) | Cod sursa (job #1078422) | Cod sursa (job #1599830) | Cod sursa (job #3130274)
#include <fstream>
#include <vector>
using namespace std;
ifstream in("dijkstra.in");
ofstream out("dijkstra.out");
struct succesor
{
int vf, d;
};
const int N= 5e4 + 2, M= 25e4 + 2;
int n , m, dm[N];
vector <succesor> vec[M];
void dfs(int vf){
for(auto i: vec[vf] ){
int p = i.d;
int y = i.vf;
if( dm[vf] + p < dm[y] || dm[y] == 0)
dm[y] = dm[vf] + p;
dfs(y);
}
}
int main()
{
in >> n >> m;
for(int i=1; i<=m; i++){
int x, y, z;
in >> x >> y >> z;
vec[x].push_back( {y, z});
}
dfs(1);
for(int i=2; i<=n; i++){
out << dm[i] << " ";
}
return 0;
}