Pagini recente » Cod sursa (job #2723010) | Cod sursa (job #157823) | Cod sursa (job #2459625) | Cod sursa (job #856577) | Cod sursa (job #510637)
Cod sursa(job #510637)
#include<fstream>
using namespace std;
int a[50][50],n,viz[50],cost[50],m;
void citire()
{
ifstream in("dijkstra.in");
int i,j,k;
in>>n>>m;
for(i=0;i<=n;i++)
for(j=0;j<=n;j++)
a[i][j]=-1;
while(in>>i>>j>>k)
a[i][j]=a[j][i]=k;
in.close();
}
void dijkstra()
{
int dmin=3200,min,i,x,nc=1;
for(i=1;i<=n;i++)
cost[i]=3200;
cost[nc]=0;
viz[nc]=1;
for(x=1;x<=n;x++)
{dmin=3200;
for(i=2;i<=n;i++)
{
if(a[nc][i]!=-1&&viz[i]==0)
{
if(a[nc][i]<=dmin)
{min=i;
dmin=a[nc][i];
}
if((a[nc][i]+cost[nc])<cost[i])
cost[i]=a[nc][i]+cost[nc];
}
}
viz[nc]=1;
nc=min;
}
}
int main ()
{
int i;
ofstream out ("dijkstra.out");
citire();
dijkstra();
for(i=2;i<=n;i++)
out<<cost[i]<<" ";
out.close();
return 0;
}