Cod sursa(job #1711044)

Utilizator brada01Bradatan Dorin brada01 Data 30 mai 2016 11:04:50
Problema Algoritmul lui Dijkstra Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.92 kb
#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]<<" ";
}