Pagini recente » Cod sursa (job #882390) | Cod sursa (job #1067934) | Cod sursa (job #2866991) | Cod sursa (job #1507847) | Cod sursa (job #3122644)
#include <bits/stdc++.h>
using namespace std;
string name ="dijktra";
ifstream fin(name+".in");
ofstream fout(name + ".out");
vector<vector<pair<long long,long long>>> grph = vector<vector<pair<long long,long long>>>(1000);
vector<long long> d = vector<long long>(1000,2e10);
vector<long long> vis = vector<long long>(1000,0);
queue<long long> q;
void dijktra(long long st){
d[st] = 0;
q.push(st);
while (!q.empty()){
long long h = q.front();
q.pop();
vis[h] = 1;
for (const auto &item: grph[h]){
if(vis[item.first]==0){
q.push(item.first);
if(d[h]+item.second<=d[item.first])
d[item.first] = d[h]+item.second;
}
}
}
}
int main(){
long long n,m;
fin>>n>>m;
for(long long i=0;i<m;++i){
long long x,y,z;
fin>>x>>y>>z;
grph[x].push_back(make_pair(y,z));
}
dijktra(1);
for (long long i=2;i<=n;i++) {
fout<<d[i]<<" ";
}
}