diff --git a/Flyod-Warshall.cpp b/Flyod-Warshall.cpp new file mode 100644 index 0000000..bb24962 --- /dev/null +++ b/Flyod-Warshall.cpp @@ -0,0 +1,54 @@ +#include +#include +using namespace std; +#define endl '\n' + +const int INF = 1e9; +int n; +vector >graph; +vector >distance; + +// Creating the Matrix ( graph) + +void create_graph(){ + cin>>n; + graph = vector >(n+1,vector(n+1)); + + for(int i=1;i<=n;i++){ + for(int j=1;j<=n;j++)cin>>graph[i][j]; + } +} + +//Using Flyod Warshall algorithm to calculate all point shortest distance + +void calculate(){ + distance = vector >(n+1,vector(n+1,INF)); + + for(int i=1;i<=n;i++){ + for(int j=1;j<=n;j++)distance[i][j]=graph[i][j]; + } + + for(int k=1;k<=n;k++){ + for(int i=1;i<=n;i++){ + for(int j=1;j<=n;j++){ + if(distance[i][j]>distance[i][k] + distance[k][j]){ + distance[i][j] = distance[i][k] + distance[k][j]; + } + } + } + } +} +void solve(){ + create_graph(); + calculate(); + int start_point,end_point; + cin>>start_point>>end_point; + + cout<