Pagini recente » Cod sursa (job #1244834) | Cod sursa (job #2725595) | Cod sursa (job #2984288) | Cod sursa (job #2436652) | Cod sursa (job #312537)
Cod sursa(job #312537)
#include<stdio.h>
#define N 50006
#define M 250009
#define oo 50000001
int cost[N][N]={0};
bool s[N];
int d[N]={0}, m, n, deg[N]={0};
void citesc(){
int a, b, c;
for(int i=1; i<=m;++i){
scanf("%d", &a);
scanf("%d", &b);
scanf("%d", &c);
deg[a]++;
}
}
//.....
}
void djk(){
int x=1;
int p=q=1;
coada[q++]=1;
s[1]=true;
while(p!=q){
x=coada[p++];
s[x]=false;
for(int i=1; i<=deg[x] ; ++i)
if(d[x]+cost[x][i]<d[a[x][i]])
{
d[a[x][i]]=d[x]+cost[x][i];
if(!s[a[x][i]])
{
coada[q++]=a[x][i];
s[a[x][i]]=true;
}
}
}
}
int main(){
freopen("dijkstra.in", "r", stdin);
freopen("dijkstra.out", "w", stdout);
citesc();
djk();
for(int i=2; i<=n;++i){
if(d[i]==oo)
printf("%d ", 0);
else printf("%d ", d[i]);
}
return 0;
}