Pagini recente » Cod sursa (job #1298436) | Cod sursa (job #1078082) | Cod sursa (job #1535809) | Cod sursa (job #82001) | Cod sursa (job #495637)
Cod sursa(job #495637)
#include<cstdio>
using namespace std;
struct NodGR
{
int inf,pd;
struct NodGR* next;
};
typedef NodGR* NGR;
NGR a[50001];
int viz[50001],C[100001],N,M,i;
void read();
void solve();
void adaug(int x,int y,int p);
void DJK(int x);
int main()
{
freopen ("dijkstra.in","r",stdin);
freopen ("dijkstra.out","w",stdout);
//for (i=1;i<=N;++i)
// viz[i]=1999999999;
read();
DJK(1);
for (i=2;i<=N;++i)
printf("%ld ",viz[i]);
return 0;
}
void adaug(int x,int y,int p)
{
NGR q=new NodGR;
q->inf=y;
q->pd=p;
q->next=a[x];
a[x]=q;
}
void read()
{
int x,y,p;
scanf("%ld%ld",&N,&M);
for (i=1;i<=M;++i)
{
scanf("%ld%ld%ld",&x,&y,&p);
adaug(x,y,p);
}
}
void DJK(int x)
{
NGR i;
int p,u,z;
p=u=1;
C[p]=x;
//viz[x]=0;
while (p<=u)
{
z=C[p++];
for (i=a[z];i;i=i->next)
if (!viz[i->inf]||viz[i->inf]>viz[z]+i->pd)
{
C[++u]=i->inf;
viz[i->inf]=viz[z]+i->pd;
}
}
}