Pagini recente » Cod sursa (job #968620) | Cod sursa (job #2495655) | Cod sursa (job #604438) | Cod sursa (job #2225114) | Cod sursa (job #145006)
Cod sursa(job #145006)
#include<fstream.h>
#define DIM 50001
#define MAX 50000001
struct lista{int inf,cost;
lista *urm;
}*p[DIM],*q;
int n,m,x,y,z,i,j,k,d[DIM],v[DIM];
int main(){
ifstream f("dijkstra.in");
f>>n>>m;
for (i=1;i<=n;i++)
{p[i]=NULL;d[i]=MAX;}
for (i=1;i<=m;i++)
{f>>x>>y>>z;
q=new lista;
q->inf=y;
q->cost=z;
q->urm=p[x];
p[x]=q;
q=new lista;
q->inf=x;
q->cost=z;
q->urm=p[y];
p[y]=q;
}
d[1]=0;k=0;
while (k!=n)
{for (i=1;i<=n;i++)
if (d[i]!=MAX&&v[i]==0)
{v[i]=1;k++;
q=p[i];
while(q!=NULL)
{if (d[q->inf]>d[i]+q->cost&&v[q->inf]==0)
d[q->inf]=d[i]+q->cost;
q=q->urm;
}
}
}
f.close();
ofstream g("dijkstra.out");
for (i=2;i<=n;i++)
g<<d[i]<<" ";
g.close();
return 0;
}