Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream.h>
- #include <fstream.h>
- const long val=255;
- int a[10][10], n, c, nr, viz[10], b[10][10], at[10][10];
- ifstream f("citire.txt");
- void init()
- {
- f>>n;
- for(int i=1; i<=n; i++)
- for(int j=1; j<=n; j++)
- if(i == j)
- a[i][j] = 0;
- else
- a[i][j] = val;
- }
- void citire()
- {
- int i, j;
- while(f>>i>>j>>c)
- {
- a[i][j] = c;
- }
- }
- void afis()
- {
- for(int i=1; i<=n; i++)
- {
- for(int j=1; j<=n; j++)
- if(a[i][j] != 255)
- cout<<"00"<<a[i][j]<<" ";
- else cout<<a[i][j]<<" ";
- cout<<'\n';
- }
- }
- ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
- void citiree()
- {
- ifstream f("citirea.in");
- f>>n;
- for(int i=1; i<=n; i++)
- for(int j=1; j<=n; j++)
- f>>a[i][j];
- f.close();
- }
- void transpusa()
- {
- for(int i=1; i<=n; i++)
- for(int j=1; j<=n; j++)
- at[i][j] = a[j][i];
- }
- void RW_a()
- {
- for(int k=1; k<=n; k++)
- for(int i=1; i<=n; i++)
- for(int j=1; j<=n; j++)
- if(a[i][j] == 0 && k!=i && k!=j)
- a[i][j]=a[i][k]*a[k][j];
- }
- void RW_at()
- {
- for(int k=1; k<=n; k++)
- for(int i=1; i<=n; i++)
- for(int j=1; j<=n; j++)
- if(at[i][j] == 0 && k!=i && k!=j)
- at[i][j]=at[i][k]*at[k][j];
- }
- void intersectie()
- {
- for(int i=1; i<=n; i++)
- for(int j=1; j<=n; j++)
- b[i][j] = a[i][j]*at[i][j];
- }
- void componente()
- {
- int nr=0;
- for(int i=1; i<=n; i++)
- if(viz[i] == 0)
- {
- nr++;
- viz[i] = 1;
- cout<<"Componenta "<<nr<<": "<<i<<" ";
- for(int j=1; j<=n; j++)
- if(b[i][j] == 1 && i!=j)
- {
- cout<<j<<" ";
- viz[j]=1;
- }
- cout<<'\n';
- }
- }
- int main()
- {
- bool p;
- cout<<"1.Algoritmul lui Royl Warshell\n2.Graf ponderat\nProgram: "; cin>>p;
- if(p == false)
- {
- init();
- citire();
- afis();
- f.close();
- }
- else if(p == true)
- {
- citiree();
- transpusa();
- RW_a();
- RW_at();
- intersectie();
- componente();
- }
- return 0;
- }
- /* citire.txt */
- 5
- 1 2 4
- 1 3 3
- 2 4 7
- 2 5 8
- 3 2 5
- 4 3 4
- 5 1 2
- 5 4 2
- /* citiree.in */
- 5
- 0 1 0 0 0
- 0 0 1 0 0
- 1 0 0 1 0
- 0 0 0 0 1
- 0 0 0 1 0
Advertisement
Add Comment
Please, Sign In to add comment