Pagini recente » Cod sursa (job #1635837) | Cod sursa (job #2698802) | Cod sursa (job #2819991) | Cod sursa (job #3128609) | Cod sursa (job #2459238)
#include <fstream>
#include <vector>
#include <climits>
using namespace std;
ifstream fin("dijkstra.in");
ofstream fout("dijkstra.out");
int n,m,i,j,x,y,c,d[50005],Min,poz;
bool viz[50005];
struct arc{
int v,c;
};
vector <arc> g[50005];
int main(){
fin>>n>>m;
for(i=1;i<=m;i++){
fin>>x>>y>>c;
g[x].push_back({y,c});
}
for(i=2;i<=n;i++)
d[i]=INT_MAX;
for(i=1;i<=n-1;i++){
Min=INT_MAX;
for(j=1;j<=n;j++)
if(!viz[j] && d[j]<Min){
Min=d[j];
poz=j;
}
viz[poz]=1;
for(j=0;j<g[poz].size();j++){
int nod=g[poz][j].v;
int cost=g[poz][j].c;
if(d[nod]>d[poz]+cost&&viz[nod]==0)
d[nod]=d[poz]+cost;
}
}
for(i=2;i<=n;i++)
if(d[i]==INT_MAX)
fout<<0<<' ';
else
fout<<d[i]<<' ';
return 0;
}