Pagini recente » Cod sursa (job #391387) | Cod sursa (job #3041891) | Cod sursa (job #361495) | Cod sursa (job #2042192) | Cod sursa (job #1711044)
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
ifstream f("dijkstra.in");
ofstream g("dijkstra.out");
using namespace std;
const int inf = 1 << 30;
int dist[10];
bool vis[10];
int main()
{
int n;
f>>n;
int a;
int adj[10][10];
for(int i = 0; i < n; i++)
for(int j = 0; j < n; j++)
{f>>a;
if(a==0) a=inf;
adj[i][j]=a;
}
for(int i = 0; i < n; ++i) {
dist[i] = inf;
}
dist[0] = 0;
for(int i = 0; i < n; ++i) {
int cur = -1;
for(int j = 0; j < n; ++j) {
if (vis[j]) continue;
if (cur == -1 || dist[j] < dist[cur]) {
cur = j;
}
}
vis[cur] = true;
for(int j = 0; j < n; ++j) {
int path = dist[cur] + adj[cur][j];
if (path < dist[j]) {
dist[j] = path;
}
}
}
for(int i=1;i<n;i++)
g<<dist[i]<<" ";
}