Advertisement
Guest User

sdffcdchfdfx

a guest
Jan 23rd, 2020
94
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.99 KB | None | 0 0
  1. #include <iostream>
  2. #include <fstream>
  3.  
  4. using namespace std;
  5. int N,K;//targyak szama, hatizsak kapacitasa
  6. int T[25],E[25];//tomegek es ertekek
  7. int H[25];// mit teszek a hatizsakba
  8. int sT[25];//a hatizsakban talalhato targyak tomege
  9. int sE[25];//a hatizsakban talalhato targyak erteke
  10. int db;
  11. int Optimalis;
  12. int OsszT=0,OsszE=0;
  13.  
  14.  
  15. void Olvas()
  16. {
  17. ifstream f("taska.txt");
  18. f>>K;f>>N;
  19. for(int i=1;i<=N;i++)
  20. {
  21. f>>T[i]>>E[i];
  22. }
  23. f.close();
  24.  
  25. }
  26.  
  27. void Mutat()
  28. {
  29. if(sE[N]>=Optimalis)
  30. {
  31. Optimalis=sE[N];
  32.  
  33. db++;
  34. cout <<db<<"."<<endl;
  35. cout <<"Index: ";
  36. for(int i=1;i<=N;i++)
  37. {
  38. cout.width(4);
  39. cout<<i<<" ";
  40. }
  41. cout <<endl;
  42.  
  43. cout <<"Tomeg: ";
  44. for(int i=1;i<=N;i++)
  45. {
  46. cout.width(4);
  47. cout<<T[i]<<" ";
  48. }
  49. cout <<endl;
  50.  
  51. cout <<"Ertek: ";
  52. for(int i=1;i<=N;i++)
  53. {
  54. cout.width(4);
  55. cout<<E[i]<<" ";
  56. }
  57. cout <<endl;
  58.  
  59. cout <<"Zsak: ";
  60. for(int i=1;i<=N;i++)
  61. {
  62. cout.width(4);
  63. cout<<H[i]<<" ";
  64. }
  65. cout <<endl;
  66.  
  67. cout <<"Ossztomeg: "<<sT[N]<<" Osszertek: "<<sE[N]<<endl;
  68. }
  69. }
  70. int Megoldas(int k)
  71. {
  72. return(k>N);
  73. }
  74. int Jo(int k)
  75. {
  76. return(sT[k]<K);
  77. }
  78. void Csere(int i,int j)
  79. {
  80. int s=T[i];T[i]=T[j];T[j]=s;
  81. s=T[i];E[i]=E[j];E[j]=s;
  82. }
  83. void Rendez()
  84. {
  85. for(int i=1;i<=N;i++)
  86. for(int j=i+1;j<=N;i++)
  87. if(E[i]/T[i]<E[j]/T[j])
  88. Csere(i,j);
  89. }
  90. int Valogat(int p)
  91. {
  92. while(OsszT+T[p]>K && p<=N)
  93. p++;
  94. return p;
  95. }
  96. void Moho()
  97. {
  98. int p=1;
  99. while(p<=N && OsszT<=K)
  100. {
  101. int x=Valogat(p);
  102. if(OsszT+T[x]<=K && x<=N)
  103. {
  104. H[x]=1;
  105. OsszT=T[x]+OsszT;
  106. OsszE=E[x]+OsszE;
  107. p=x+1;
  108. }
  109. }
  110. sT[N]=OsszT;sE[N]=OsszE;
  111. }
  112. int main()
  113. {
  114. Olvas();
  115. Mutat();
  116. Rendez();
  117. Moho();
  118. Mutat();
  119. return 0;
  120. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement