Pagini recente » Cod sursa (job #807602) | Cod sursa (job #240394) | Cod sursa (job #1419604) | Cod sursa (job #3185541) | Cod sursa (job #2395304)
#include <bits/stdc++.h>
using namespace std;
vector <pair<int, int>> A[50001];
const int inf = 1 << 30;
int d[50001];
int viz[50001];
int main()
{
ifstream f("dijkstra.in");
ofstream g("dijkstra.out");
int n, m;
f>>n>>m;
for (int i = 0; i < m; i++)
{
int x, y, c;
f>>x>>y>>c;
A[x].push_back(make_pair(y, c));
}
for (int i = 2; i <= n; i++)
{
d[i] = inf;
}
d[1] = 0;
int node = 1;
for (int i = 1; i <= n; i++)
{
int mini = 20002;
for (int j = 1; j <= n; j++)
{
if (mini > d[j] && viz[j] == 0)
{
mini = d[j];
node = j;
}
}
viz[node] = 1;
for (int j = 0; j < A[node].size(); j++)
{
if (d[node] + A[node][j].second < d[A[node][j].first])
{
d[A[node][j].first] = d[node] + A[node][j].second;
}
}
}
/* for (int i = 0; i < A[5].size(); i++)
{
A[5][i].first;
A[5][i].second;
}
*/
for (int i = 2; i <= n; i++)
{
g<<d[i]<<" ";
}
return 0;
}