Skip to content

Commit b3f286a

Browse files
committed
solved issue #282
1 parent b157066 commit b3f286a

File tree

1 file changed

+57
-0
lines changed

1 file changed

+57
-0
lines changed

floydWarshall.cpp

+57
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
#include<bits/stdc++.h>
2+
3+
using namespace std;
4+
5+
#define V 4
6+
7+
#define INF 99999
8+
9+
void printSol(int dist[][V]);
10+
11+
void floydWarshall(int graph[][V])
12+
{
13+
int dist[V][V];
14+
for(int i=0; i<V; ++i)
15+
for(int j=0; j<V; ++j)
16+
dist[i][j] = graph[i][j];
17+
18+
for(int k = 0; k<V; ++k)
19+
{
20+
for(int i=0; i<V; ++i)
21+
{
22+
for(int j=0; j<V; ++j)
23+
{
24+
if(dist[i][j] > dist[i][k] + dist[k][j])
25+
dist[i][j] = dist[i][k] + dist[k][j];
26+
}
27+
}
28+
}
29+
printSol(dist);
30+
}
31+
32+
void printSol(int dist[][V])
33+
{
34+
for(int i=0; i<V; ++i)
35+
{
36+
for(int j=0; j<V; ++j)
37+
{
38+
if(dist[i][j] == INF)
39+
cout<<"INF ";
40+
else
41+
cout<<dist[i][j]<<" ";
42+
}
43+
cout<<endl;
44+
}
45+
}
46+
47+
int main()
48+
{
49+
int graph[V][V] = { {0, 5, INF, 10},
50+
{INF, 0, 3, INF},
51+
{INF, INF, 0, 1},
52+
{INF, INF, INF, 0}
53+
};
54+
55+
floydWarshall(graph);
56+
return 0;
57+
}

0 commit comments

Comments
 (0)