Pagini recente » Cod sursa (job #279036) | Cod sursa (job #2384219) | Cod sursa (job #2147442) | Cod sursa (job #1354908) | Cod sursa (job #279047)
Cod sursa(job #279047)
# include <fstream>
using namespace std;
int a[10000][10000], n, m, t[50005];
ofstream fout ("dijkstra.out");
void citire ()
{
int i, j, k, l;
ifstream fin ("ff.in");
fin>>n>>m;
for (i=1;i<=m;i++)
for (j=1;j<=n;j++)
a[i][j]=-1;
for (k=1;k<=m;k++)
{
fin>>i>>j>>l;
a[i][j]=a[j][i]=l;
}
}
void dijks ()
{
int i, j, fiu, k, dm, tt, d[50005], v[50005];
for (i=1;i<=n+2;i++)
v[i]=0;
t[1]=0;
d[1]=0;
v[1]=1;
for (i=1;i<n;i++)
{
dm=33000;
for (j=1;j<=n;j++)
if (v[j])
for (k=1;k<=n;k++)
if (v[k]==0)
if (a[j][k]>-1 && a[j][k]+d[j]<dm)
{
dm=a[j][k]+d[j];
tt=j;
fiu=k;
}
v[fiu]=1;
d[fiu]=dm;
t[fiu]=tt;
}
}
int main ()
{
int i;
citire ();
dijks ();
for (i=2;i<=n;i++)
fout<<t[i]<<" ";
return 0;
}