Advertisement
Guest User

Untitled

a guest
Nov 21st, 2019
136
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.06 KB | None | 0 0
  1. #include <iostream>
  2. #include <fstream>
  3.  
  4. using namespace std;
  5.  
  6. int main()
  7. {
  8. int a,poczatek;
  9.  
  10. fstream plik;
  11. plik.open( "In0305.txt" );
  12. plik >> a >> poczatek;
  13. int tab1[a][a];
  14. int tab2[a][a];
  15. for (int i = 0; i<a; i ++)
  16. {
  17. for (int j= 0; j < a;j++)
  18. {
  19. plik >> tab1[i][j];
  20. }
  21.  
  22. }
  23. //odwracanie tablicy
  24. for(int i = 0; i < a; i++)
  25.  
  26. {
  27. for(int j = 0;j < a; j++)
  28. tab2[j][i]=tab1[i][j];
  29. }
  30.  
  31.  
  32.  
  33. for (int i =0; i <a;i++)
  34. {
  35. for (int j=0;j<a;j++)
  36. {
  37. cout<< tab2[i][j] << " ";
  38. }
  39. cout<<endl;
  40. }
  41.  
  42. int tabsort[a][a];
  43.  
  44.  
  45.  
  46. for (int i =0; i <a;i++)
  47. {
  48. for (int j=0;j<a;j++)
  49. {
  50. tabsort[i][j] = 0;
  51. }
  52.  
  53. }
  54. // wypelnianie pierwszego wiersza wartosciami liczby z pliku
  55. poczatek = poczatek -1;
  56. for (int i = 0; i < 6; i++)
  57. {
  58. tabsort[0][i] = tab2[poczatek][i];
  59. }
  60. cout<<endl;
  61.  
  62. for (int i =0; i <a;i++)
  63. {
  64. for (int j=0;j<a;j++)
  65. {
  66. cout<< tabsort[i][j] << " ";
  67. }
  68. cout<<endl;
  69. }
  70. int maxi=100;
  71. int mini;
  72. int b,c,d =1;
  73. int tabdist[a];
  74.  
  75. for (int i = 0; i <a; i++)
  76. {
  77. tabdist[i] = 0;
  78. }
  79. // szukanie najmniejszej liczby w 1 wierszu
  80. for (int i =0; i <a;i++)
  81. {
  82. for (int j=0;j<a;j++)
  83. {
  84. if ( tabsort[i][j] != 0 && tabsort[i][j] != -1 )
  85. {
  86. if (tabsort[i][j] <maxi)
  87. {
  88. maxi = tabsort[i][j];
  89.  
  90. c = j;
  91. }
  92.  
  93. }
  94.  
  95. }
  96.  
  97. }
  98. tabdist[a-1]= 0;
  99. tabdist[c]= maxi;
  100. cout << maxi << endl;
  101. cout << " " << c << endl;
  102.  
  103. // wypisywanie - pod najmniejsza liczba i poczatkiem
  104. for (int j=1;j<a;j++)
  105. {
  106. tabsort[j][c]= -2;
  107. tabsort[j][poczatek] = -2;
  108. }
  109.  
  110. for (int i =0; i <a;i++)
  111. {
  112. for (int j=0;j<a;j++)
  113. {
  114. cout<< tabsort[i][j] << " ";
  115. }
  116. cout<<endl;
  117. }
  118. cout << endl;
  119. int f=1;
  120.  
  121. //while(d<a)
  122. //{
  123.  
  124. // dodawanie
  125.  
  126. for (int j = 0 ; j <a; j++)
  127. {
  128. if (tabsort[f][j]!= -2 )
  129. {
  130. if(tab2[c][j]!= -1)
  131. {
  132. tabsort [f][j] = tab2[c][j]+maxi;
  133. }
  134. else
  135. tabsort [f][j] = tab2[c][j];
  136. }
  137.  
  138. if ( tabsort[f-1][j] < tabsort[f][j] && (tabsort[f-1][j] == -1 || tabsort[f-1][j] == -2))
  139. tabsort[f][j] = tabsort[f][j];
  140. else
  141. tabsort[f][j] = tabsort[f-1][j];
  142. }
  143. // szukanie min
  144. maxi = 100;
  145. for (int j=0;j<a;j++)
  146. {
  147. if ( tabsort[f][j] != -2 && tabsort[f][j] != -1 )
  148. {
  149. if (tabsort[f][j] <maxi)
  150. {
  151. maxi = tabsort[f][j];
  152.  
  153. c = j;
  154. }
  155.  
  156. }
  157.  
  158. }
  159.  
  160. for (int i=f+1;i<a;i++)
  161. {
  162. tabsort[i][c]= -2;
  163. }
  164. tabdist[c]= maxi;
  165. cout << maxi << " " << c << endl;
  166. //d++;
  167. //f++;
  168. //}
  169.  
  170.  
  171.  
  172.  
  173. for (int i =0; i <a;i++)
  174. {
  175. for (int j=0;j<a;j++)
  176. {
  177. cout<< tabsort[i][j] << " ";
  178. }
  179. cout<<endl;
  180. }
  181. cout << endl;
  182. for (int i = 0;i <a; i++)
  183. {
  184. cout << tabdist[i] << " ";
  185. }
  186.  
  187.  
  188. //d++
  189. //}
  190.  
  191. return 0;
  192. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement