Advertisement
Guest User

Untitled

a guest
Apr 25th, 2015
207
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.86 KB | None | 0 0
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5.  
  6.  
  7.  
  8. struct wyciag{
  9. int xp;
  10. int yp;
  11. int xk;
  12. int yk;
  13. int czas_podrozy;
  14. int jak_czesto;
  15. };
  16.  
  17. struct pole{
  18. int x;
  19. int y;
  20. int wys;
  21. int koszt;
  22. int pozycja_w_kopcu;
  23. pole *sasiad1 = NULL; //lewy sąsiad
  24. pole *sasiad2 = NULL; //prawy sąsiad
  25. pole *sasiad3 = NULL; //dolny sąsiad
  26. pole *sasiad4 = NULL; //górny sąsiad
  27. };
  28.  
  29.  
  30. void zamien(pole **kopiec)
  31. {
  32. pole **wiadro;
  33.  
  34. *wiadro = kopiec[0];
  35. kopiec[0] = kopiec[1];
  36. kopiec[1] = *wiadro;
  37. }
  38.  
  39.  
  40. void wypchnij()
  41. {
  42.  
  43.  
  44.  
  45. }
  46.  
  47. int main()
  48. {
  49.  
  50. int x, y, startx = 0, starty = 0, celx, cely, wyciagi ;
  51. scanf("%d %d %d %d %d %d %d", &x, &y, &startx, &starty, &celx, &cely, &wyciagi);
  52. pole **tab = new pole*[x];
  53. pole **kopiec = new pole*[x*y];
  54. wyciag *wyciagarka = new wyciag[wyciagi];
  55. if (wyciagi > 0)
  56. {
  57. for (int i = 0; i < wyciagi; i++)
  58. {
  59. scanf("%d %d %d %d %d %d", &wyciagarka[i].xp, &wyciagarka[i].yp, &wyciagarka[i].xk, &wyciagarka[i].yk, &wyciagarka[i].czas_podrozy, &wyciagarka[i].jak_czesto);
  60. }
  61.  
  62. }
  63.  
  64.  
  65. for (int i = 0; i < y; i++)
  66. tab[i] = new pole[y];
  67. for (int i = 0; i < x; i++)
  68. for (int j = 0; j < y; j++)
  69. {
  70. scanf("%d", &tab[i][j].wys);
  71. tab[i][j].pozycja_w_kopcu = (x*y);
  72. tab[i][j].x = i;
  73. tab[i][j].y = j;
  74. tab[i][j].koszt = 100000000;
  75. if (i != 0){ tab[i][j].sasiad1 = &tab[i - 1][j]; }
  76. if (i != x - 1){ tab[i][j].sasiad2 = &tab[i + 1][j]; }
  77. if (j != y -1){ tab[i][j].sasiad3 = &tab[i][j + 1]; }
  78. if (j != 0){ tab[i][j].sasiad4 = &tab[i][j - 1]; }
  79. }
  80. tab[startx][starty].koszt = 0;
  81.  
  82. for (int i = 0; i < x; i++)
  83. {
  84. for ( int j = 0; j < y; j++)
  85. {
  86. kopiec[tab[i][j].pozycja_w_kopcu] = &tab[i][j];
  87. }
  88. }
  89.  
  90.  
  91.  
  92.  
  93.  
  94.  
  95.  
  96.  
  97. cout << tab[celx][cely].koszt;
  98.  
  99. delete tab;
  100. delete kopiec;
  101.  
  102.  
  103. return 0;
  104. }
  105.  
  106. /*
  107. Dziecko jest na pozycji 2i+1 i 2i+2
  108. Rodzic na (i-1)/2
  109. */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement