Pagini recente » Cod sursa (job #2024119) | Cod sursa (job #1101749) | Cod sursa (job #1170943) | Cod sursa (job #3187844) | Cod sursa (job #1114232)
#include <fstream>
#define nmax 50002
#define mmax 250002
#define inf 2000000000
using namespace std;
long long muchiex[mmax],muchiey[mmax],muchiecost[mmax];
long long d[nmax];
long long i,x,y,c,m,n,OK;
ifstream f("dijkstra.in");
ofstream g("dijkstra.out");
int main()
{ f>>n>>m;
for (i=1 ;i<=m ; i++)
{f>>x>>y>>c;
muchiex[i]=x;
muchiey[i]=y;
muchiecost[i]=c;
if (x==1) d[y]=c;
}
for (i=2 ; i<=n ; i++)
if (d[i]==0) d[i]=inf;
do
{ OK=1;
for (i=1 ; i<=m ; i++)
if (d[muchiey[i]]>d[muchiex[i]]+muchiecost[i] )
{d[muchiey[i]]=d[muchiex[i]]+muchiecost[i];
OK=0;
}
}
while (OK==0) ;
for (i=2;i<=n;i++)
{if (d[i]==inf) g<<'0 ' ;
g<<d[i]<<' '; }
f.close();
g.close();
return 0 ;
}