Pagini recente » Cod sursa (job #227658) | Cod sursa (job #1165837) | Cod sursa (job #2444183) | Cod sursa (job #1420828) | Cod sursa (job #1835676)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("dijkstra.in");
ofstream fout("dijkstra.out");
int n,kezd,tav[2005],ut[2005],a[2005][2005],p,i,f,g,h;
bool latott[101];
int minimum()
{
int mn=9999,k=0;
for(int i=1;i<=n;i++)
{
if(tav[i]<mn && latott[i]==0)
{
mn=tav[i];
k=i;
}
}
return k;
}
int main()
{
int m;
fin>>n>>m;
for(i=1;i<=m;i++)
{
fin>>f>>g>>h;
a[f][g]=h;
a[g][f]=h;
}
kezd=1;
for(i=1;i<=n;i++)
tav[i]=999999;
tav[kezd]=0;
while(1)
{
p=minimum();
if(p!=0)
{
latott[p]=1;
for(i=1;i<=n;i++)
{
if(latott[i]==0 && a[p][i]>0 && tav[i]>tav[p]+a[p][i])
{
tav[i]=tav[p]+a[p][i];
ut[i]=p;
}
}
}
else break;
}
for(i=2;i<=n;i++)
{
if(tav[i]!=999999) fout<<tav[i]<<" ";
else fout<<0;
}
}