Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <fstream>
- using namespace std;
- int main()
- {
- int a,poczatek;
- fstream plik;
- plik.open( "In0305.txt" );
- plik >> a >> poczatek;
- int tab1[a][a];
- int tab2[a][a];
- for (int i = 0; i<a; i ++)
- {
- for (int j= 0; j < a;j++)
- {
- plik >> tab1[i][j];
- }
- }
- //odwracanie tablicy
- for(int i = 0; i < a; i++)
- {
- for(int j = 0;j < a; j++)
- tab2[j][i]=tab1[i][j];
- }
- for (int i =0; i <a;i++)
- {
- for (int j=0;j<a;j++)
- {
- cout<< tab2[i][j] << " ";
- }
- cout<<endl;
- }
- int tabsort[a][a];
- for (int i =0; i <a;i++)
- {
- for (int j=0;j<a;j++)
- {
- tabsort[i][j] = 0;
- }
- }
- // wypelnianie pierwszego wiersza wartosciami liczby z pliku
- poczatek = poczatek -1;
- for (int i = 0; i < 6; i++)
- {
- tabsort[0][i] = tab2[poczatek][i];
- }
- cout<<endl;
- for (int i =0; i <a;i++)
- {
- for (int j=0;j<a;j++)
- {
- cout<< tabsort[i][j] << " ";
- }
- cout<<endl;
- }
- int maxi=100;
- int mini;
- int b,c,d =1;
- int tabdist[a];
- for (int i = 0; i <a; i++)
- {
- tabdist[i] = 0;
- }
- // szukanie najmniejszej liczby w 1 wierszu
- for (int i =0; i <a;i++)
- {
- for (int j=0;j<a;j++)
- {
- if ( tabsort[i][j] != 0 && tabsort[i][j] != -1 )
- {
- if (tabsort[i][j] <maxi)
- {
- maxi = tabsort[i][j];
- c = j;
- }
- }
- }
- }
- tabdist[a-1]= 0;
- tabdist[c]= maxi;
- cout << maxi << endl;
- cout << " " << c << endl;
- // wypisywanie - pod najmniejsza liczba i poczatkiem
- for (int j=1;j<a;j++)
- {
- tabsort[j][c]= -2;
- tabsort[j][poczatek] = -2;
- }
- for (int i =0; i <a;i++)
- {
- for (int j=0;j<a;j++)
- {
- cout<< tabsort[i][j] << " ";
- }
- cout<<endl;
- }
- cout << endl;
- int f=1;
- //while(d<a)
- //{
- // dodawanie
- for (int j = 0 ; j <a; j++)
- {
- if (tabsort[f][j]!= -2 )
- {
- if(tab2[c][j]!= -1)
- {
- tabsort [f][j] = tab2[c][j]+maxi;
- }
- else
- tabsort [f][j] = tab2[c][j];
- }
- if ( tabsort[f-1][j] < tabsort[f][j] && (tabsort[f-1][j] == -1 || tabsort[f-1][j] == -2))
- tabsort[f][j] = tabsort[f][j];
- else
- tabsort[f][j] = tabsort[f-1][j];
- }
- // szukanie min
- maxi = 100;
- for (int j=0;j<a;j++)
- {
- if ( tabsort[f][j] != -2 && tabsort[f][j] != -1 )
- {
- if (tabsort[f][j] <maxi)
- {
- maxi = tabsort[f][j];
- c = j;
- }
- }
- }
- for (int i=f+1;i<a;i++)
- {
- tabsort[i][c]= -2;
- }
- tabdist[c]= maxi;
- cout << maxi << " " << c << endl;
- //d++;
- //f++;
- //}
- for (int i =0; i <a;i++)
- {
- for (int j=0;j<a;j++)
- {
- cout<< tabsort[i][j] << " ";
- }
- cout<<endl;
- }
- cout << endl;
- for (int i = 0;i <a; i++)
- {
- cout << tabdist[i] << " ";
- }
- //d++
- //}
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement