Pagini recente » Cod sursa (job #739537) | Cod sursa (job #1794635)
#include <fstream>
#include <cstring>
using namespace std;
ifstream f("dijkstra.in");
ofstream g("dijkstra.out");
int mare = 0x3f3f3f3f;
int n, m, i, j;
int vec[50005];
bool ok;
struct filip
{
int x, y, cost;
} v[250005];
int main()
{
f >> n >> m;
memset(vec,mare,sizeof vec);
for (i = 1; i <= m; i++)
{
f >> v[i].x >> v[i].y >> v[i].cost;
if (v[i].x == 1)
vec[v[i].y] = v[i].cost;
}
vec[1] = 0;
ok = 0;
while (!ok)
{
ok = 1;
for (i = 1; i <= m; i++)
if (vec[v[i].x] + v[i].cost < vec[v[i].y])
vec[v[i].y] = vec[v[i].x] + v[i].cost, ok = 0;
}
for (i = 2; i <= n; i++)
if (vec[i] != mare)
g << vec[i] << " ";
else
g << "0 ";
return 0;
}