Pagini recente » Cod sursa (job #756687) | Cod sursa (job #1531692) | Autentificare | Cod sursa (job #1558081) | Cod sursa (job #2078019)
#include <fstream>
using namespace std;
ifstream f("dijkstra.in");
ofstream g("dijkstra.out");
int n,i,j,x,mi,poz,a[50001][50001],v[50001],d[50001];
int main()
{
f>>n;
for(i=1 ; i<=n ; ++i)
for(j=1 ; j<=n ; ++j)
{
f>>a[i][j];
//if(a[i][j]==0)
// a[i][j]=99999999;
}
v[1]=1;
for (i=1;i<=n;i++)
d[i]=a[1][i];
for(i=1 ; i<=n ; ++i)
{
mi=9999999;
poz=0;
for(j=1 ; j<=n ; ++j)
if(v[j]==0&&d[j]<mi&&d[j]<1000)
{
mi=d[j];
poz=j;
}
if (poz==0) break;
x=d[poz];
v[poz]=1;
for(j=1 ; j<=n ; ++j)
if(x+a[poz][j]<d[j])
d[j]=x+a[poz][j];
}
for(i=1 ; i<=n ; ++i)
{
//for(j=1 ; j<=n ; ++j)
g<<d[i]<<" ";
//g<<'\n';
}
return 0;
}