Pagini recente » Cod sursa (job #1201116) | Cod sursa (job #1002776) | Cod sursa (job #1884780) | Cod sursa (job #3168664) | Cod sursa (job #186775)
Cod sursa(job #186775)
#include<fstream.h>
#define NMAX 1001
#define inf 25000
//using namespace std;
int d[inf]; //ut hossza d
int s[inf]; //elozo szomszedja pre
//int t[inf]; //megneztem-e vagy sem? M
int a[NMAX][NMAX],n;
void Bellmann_Ford();
void Bellmann_Ford()
{
int i,j,k,ok=0;
for (i=1;i<=n;i++)
{
ok=0;
for (j=1;j<=n;j++)
for (k=1;k<=n;k++)
if (a[j][k]!=inf && d[k]>d[j]+a[j][k])
{
d[k]=d[j]+a[j][k];
s[k]=j;
ok=1;
}
if (!ok)
break;
}
/*for (j=1;j<=n;j++)
for (k=1;k<=n;k++)
if (a[j][k]!=inf && d[k]>d[j]+a[j][k])*/
}
int main()
{
int i,j,x,k,l,o,min,hely,m;
//inicializalas
ifstream be ("dijkstra.in");
be>>n>>m;
x=1;
for (i=1;i<=n;i++)
for (j=i+1;j<=n;j++) //mindent vegtelenre allitunk
a[i][j]=a[j][i]=inf;
for (i=1;i<=m;i++)
{
be>>k>>l>>o;
a[k][l]=o; //az elek sulyat betesszuk
}
for (i=1;i<=n;i++)
{
d[i]=a[x][i]; //az elso el szomszedait beallitjuk
s[i]=x;
}
be.close();
d[x]=0;s[x]=0;//t[x]=1;
//vege inicializalas
Bellmann_Ford();
ofstream ki ("dijkstra.out");
for (i=2;i<=n;i++)
ki<<d[i]<<" ";
ki<<'\n';
//vege kereses
ki.close();
return 0;
}