Pagini recente » Cod sursa (job #723185) | Cod sursa (job #2216274) | Cod sursa (job #3192496) | Cod sursa (job #1462055) | Cod sursa (job #1805485)
#include <iostream>
#include <vector>
#include <utility>
using namespace std;
struct W{
int x, y, w;
W(int x, int y, int w) {
this->x=x;
this->y=y;
this->w=w;
}
};
int main () {
int n, m, x, y, z;
vector<W> w;
freopen("dijkstra.in", "r", stdin);
freopen("dijkstra.out", "w", stdout);
cin>>n>>m;
for(int i=0;i<m;i++) {
cin>>x>>y>>z;
w.push_back(W(x,y,z));
}
vector<int> distance(n+1);
for(int i=1;i<=n;i++) {
distance[i]=0x3f3f3f3f;
}
distance[1]=0;
bool change=true;
while(change) {
change=false;
for(auto& e: w) {
if(distance[e.y] > distance[e.x] + e.w) {
change=true;
distance[e.y] = distance[e.x] + e.w;
}
}
}
for(int i=2;i<=n;i++) {
cout<<distance[i]<<" ";
}
return 0;
}