Pagini recente » Cod sursa (job #843981) | Cod sursa (job #2740007) | Cod sursa (job #899789) | Cod sursa (job #2863762) | Cod sursa (job #2567007)
#include <fstream>
#define infi 1000000000
using namespace std;
ifstream f("dijkstra.in");
ofstream g("dijkstra.out");
long long a[101][101],n,d[101],inf,coada[101],c[101][101],s,x,y,i,cost;
void Bellf(int nod)
{
int i,j,p,u;
for(int i=1;i<=n;i++)
d[i]=inf;
d[nod]=0;
p=u=1;
coada[u]=nod;
while(p<=u){
j=coada[p];p++;
for(int i=1;i<=n;i++)
if(c[i][j]>0)
if(d[i]>d[j]+c[j][i])
{
d[i]=d[j]+c[j][i];
coada[++u]=i;
}
}
}
int main()
{
f>>n>>s;
// for(int i=1;i<=n;i++)
// for(int j=1;j<=n;j++)
// c[i][j]=infi;
while(f>>x>>y>>cost)
c[x][y]=cost;
Bellf(s);
for(i=1;i<=n;i++)
g<<d[i]<<" ";
return 0;
}