#include <iostream>
using namespace std;
void distanceA(int a[])
{
for (int i = 0; i < 7; i++)
{
cout << i << "shortest path from : " << a[i] << endl;
}
}
int main()
{
int x;
cout << "departing city: 1, 2, 3, 4, 5, 6" << endl;
cout << "your choice ";
cin >> x;
int inf = 10000;
int c[7][7] = {
{ 0,inf,inf ,inf ,inf ,10,inf },
{ 20,0,80,inf, 20,inf, inf },
{ inf,inf,0,inf,20,inf,inf },
{ 50,inf ,inf ,0,30,inf ,inf },
{ inf ,90,inf ,30,0,inf ,inf },
{ inf ,inf ,40,inf ,inf ,0,20 },
{ inf ,inf ,10,inf ,inf ,10,0 }
};
int distanceB[7] = { inf ,inf ,inf ,inf ,inf ,inf ,inf };
int s[7] = { 0,0,0,0,0,0,0 };
int i, j, m;
for (i = 0; i < 7; i++)
{
distanceB[i] = c[x][i];
}
s[x] = 1;
for (i = 0; i < 7; i++)
{
int min = inf;
for (j = 0; j < 7; j++)
{
if (s[j] == 0 && c[x][j] < min)
{
min = c[x][j];
m = j;
}
}
s[m] = 1;
for (j = 0; j < 7; j++)
{
if (distanceB[j] > c[m][j] + distanceB[m])
distanceB[j] = c[m][j] + distanceB[m];
}
x = m;
}
distanceA(distanceB);
return 0;
}
프로그래밍 천재형님들...
이거 c++형식인데 java형식으로 좀 바꿔주십쇼
간곡히 부탁드립니다..
댓글 0