Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <fstream>
- using namespace std;
- ifstream in("roy-floyd.in");
- ofstream out("roy-floyd.out");
- int c[120][120], T[120][120],n,infinit=1000000,m;
- void citire()
- {
- in>>n>>m;
- int i,j,x;
- for(i=1; i<=n; i++)
- for(j=1; j<=n; j++)
- c[i][j]=infinit;
- for(int k=1; k<=m; k++)
- {
- in>>i>>j>>x;
- c[i][j]=x;
- }
- }
- void RoyFloyd()
- {
- int k,i,j;
- for(k=1; k<=n; k++)
- for(i=1; i<=n; i++)
- for(j=1; j<=n; j++)
- if(c[i][k]!=infinit && c[k][j]!=infinit && c[i][k]+c[k][j]<c[i][j])
- {
- c[i][j]=c[i][k]+c[k][j];
- T[i][j]=k;
- }
- }
- int main()
- {
- citire();
- RoyFloyd();
- for(int i=1; i<=n; i++)
- c[i][i]=0;
- for(int i=1; i<=n; i++)
- for(int j=1; j<=n; j++)
- if(c[i][j]==infinit)
- c[i][j]=-1;
- for(int i=1; i<=n; i++)
- {
- for(int j=1; j<=n; j++)
- out<<c[i][j]<<" ";
- out<<endl;
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement