Cod sursa(job #2567007)

Utilizator ADONIS_chOpris Adonis ADONIS_ch Data 3 martie 2020 14:28:25
Problema Algoritmul lui Dijkstra Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.69 kb
#include <fstream>
#define infi 1000000000
using namespace std;
ifstream f("dijkstra.in");
ofstream g("dijkstra.out");
long long a[101][101],n,d[101],inf,coada[101],c[101][101],s,x,y,i,cost;
void Bellf(int nod)
{
  int i,j,p,u;
  for(int i=1;i<=n;i++)
    d[i]=inf;
  d[nod]=0;
  p=u=1;
  coada[u]=nod;
  while(p<=u){
    j=coada[p];p++;
  for(int i=1;i<=n;i++)
    if(c[i][j]>0)
    if(d[i]>d[j]+c[j][i])
    {
      d[i]=d[j]+c[j][i];
      coada[++u]=i;
    }
}
}
int main()
{
 f>>n>>s;
// for(int i=1;i<=n;i++)
//    for(int j=1;j<=n;j++)
//    c[i][j]=infi;
 while(f>>x>>y>>cost)
c[x][y]=cost;
   Bellf(s);
   for(i=1;i<=n;i++)
    g<<d[i]<<" ";

    return 0;
}