Pagini recente » Cod sursa (job #641894) | Cod sursa (job #197518) | Cod sursa (job #3211202) | Cod sursa (job #1553748) | Cod sursa (job #1124802)
#include<fstream>
#define inf 999999999;
using namespace std;
ifstream f("dijkstra.in");
ofstream g("dijkstra.out");
int m[101][101],n,s,a,b,d,veniri[101],cost[101],viz[101],p,u,c[101],i;
int main ()
{
f>>n>>s;
while(f>>a>>b>>d)
{
m[a][b]=d;
veniri[b]=1;
}
for(i=1;i<=n;i++)
if(veniri[i]==0)
{
viz[i]=1;
cost[i]=-1;
}
p=u=1;
c[u]=s;
viz[s]=1;
while(p<=u)
{
for(i=1;i<=n;i++)
{
if(viz[i]==0&&m[c[p]][i]>0)
{
c[++u]=i;
viz[i]=1;
cost[i]=cost[c[p]]+m[c[p]][i];
}
if(cost[i]>cost[c[p]]+m[c[p]][i]&&m[c[p]][i]!=0)
cost[i]=cost[c[p]]+m[c[p]][i];
}
p++;
}
for(i=1;i<=n;i++)
g<<cost[i]<<" ";
return 0;
}