Advertisement
Guest User

Untitled

a guest
Apr 1st, 2020
158
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.69 KB | None | 0 0
  1. #include<iostream>
  2. #include<vector>
  3. #include <algorithm>
  4.  
  5. struct obiekt
  6. {
  7. int waga;
  8. int wartosc;
  9. std::string nazwa;
  10. };
  11.  
  12. std::vector <obiekt> vec;
  13.  
  14. void Bellman(obiekt* pierw, int n, int udzwig)
  15. {
  16. int wartosc[udzwig+1][n];
  17. int cowloz[udzwig+1][n];
  18.  
  19. for(int i = 1; i < n; i++)
  20. {
  21. for(int i2=1; i2<=udzwig; i2++)
  22. {
  23. if(i2 >= pierw[i].waga && wartosc[i-1][i2] < wartosc[i][i2-pierw[i].waga] + pierw[i].wartosc)
  24. {
  25. wartosc[i][i2] = wartosc[i][i2 - pierw[i].waga] + pierw[i].wartosc;
  26. cowloz[i][i2] = (i+1);
  27. }
  28.  
  29. else
  30. {
  31. wartosc[i][i2] = wartosc[i-1][i2];
  32. cowloz[i][i2] = cowloz[i-1][i2];
  33. }
  34. }
  35. }
  36. int udz2 = udzwig;
  37.  
  38. do
  39. {
  40. vec.push_back(pierw[cowloz[n-1][udz2]]);
  41. udz2 -= pierw[cowloz[n-1][udz2]].waga;
  42. } while(udz2>0);
  43.  
  44. int w = wartosc[n-1][udzwig];
  45. }
  46.  
  47.  
  48. int main()
  49. {
  50.  
  51. int n; int udzwig;
  52.  
  53. std::cout<<"\nWpisz udzwig plecaka: ";
  54. std::cin>>udzwig;
  55.  
  56. std::cout<<"\nWpisz ilosc przedmiotow na liscie: ";
  57. std::cin>>n;
  58.  
  59. obiekt tab[n];
  60.  
  61. for(int i=0; i<n; ++i)
  62. {
  63. std::cout<<"\n\n\nWpisz nazwe przedmiotu: ";
  64. std::cin>>tab[i].nazwa;
  65. std::cout<<"Wpisz wartosc przedmiotu: ";
  66. std::cin>>tab[i].wartosc;
  67. std::cout<<"Wpisz wage przedmiotu: ";
  68. std::cin>>tab[i].waga;
  69. }
  70.  
  71. Bellman(tab, n, udzwig);
  72.  
  73. std::cout<<"Do plecaka włożone zostaną: ";
  74. for(int i=0; i<vec.size(); ++i)
  75. {
  76. if(i==vec.size()-1) {std::cout<<vec[i].nazwa<<'.'; return 0;}
  77.  
  78. std::cout<<vec[i].nazwa<<','<<' ';
  79. }
  80. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement