Pagini recente » Cod sursa (job #2045823) | Cod sursa (job #1914551) | Cod sursa (job #831959) | Cod sursa (job #1227955) | Cod sursa (job #1021945)
#include <fstream>
#define inf 999999999
using namespace std;
ifstream f("dijkstra.in");
ofstream g("dijkstra.out");
struct muchie {int x, y, c;} a[250005];
int N, M, start=1, D[50005];
inline void read()
{
f>>N>>M;
for (int i=1; i<=N; ++i) D[i]=inf;
for (int i=1; i<=M; ++i)
{
f>>a[i].x>>a[i].y>>a[i].c;
if (a[i].x==start) D[a[i].y]=a[i].c;
//pt grafuri neorientate
//if (a[i].y==start) D[a[i].x]=a[i].c;
}
}
inline void dijkstra()
{
bool ok=1;
while (ok)
{
ok=0;
for (int i=1; i<=M; ++i)
if (D[a[i].y]>D[a[i].x]+a[i].c)
{
D[a[i].y]=D[a[i].x]+a[i].c;
ok=1;
}
/*pt grafuri neorientate
else if (D[a[i].x]>D[a[i].y]+a[i].c)
{
ok=1;
D[a[i].x]=D[a[i].y]+a[i].c;
}*/
}
}
int main()
{
read();
dijkstra();
for (int i=1; i<=N; ++i)
if (i!=start)
{
if (D[i]>=inf) g<<0<<' ';
else g<<D[i]<<' ';
}
return 0;
}