Advertisement
Cristina_Hustea

Untitled

Apr 13th, 2020
33
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.97 KB | None | 0 0
  1. #define _CRT_SECURE_NO_WARNINGS
  2. #include<stdio.h>
  3. #include<stdlib.h>
  4.  
  5. int gr,v[100],sol_max[100],g[100],G,n,nr_sol,c[100],s_max;
  6.  
  7. int valid(int k) {
  8. gr = 0;
  9. for (int i = 1; i <= k; i++)
  10.  
  11. gr = gr + v[i] * g[i];
  12. if (gr <= G)
  13. return 1;
  14. else return 0;
  15.  
  16. }
  17. void optim() {
  18. int i, s = 0;
  19. nr_sol++;
  20. for (i = 1; i <= n; i++)
  21. s = s + v[i] * c[i];
  22. if ((nr_sol == 0) || (s > s_max)) {
  23. s_max = s;
  24. for (i = 1; i <= n; i++)
  25. sol_max[i] = v[i];
  26.  
  27. }
  28.  
  29.  
  30. }
  31. void back(int k) {
  32. int i;
  33. for (i = 0; i <= 1; i++) {
  34. v[k] = i;
  35. if (valid(k))
  36. if (k == n) optim();
  37. else back(k + 1);
  38. }
  39. }
  40.  
  41. void citire() {
  42. int n = 4, G = 20;
  43. int g[] = { 5, 10, 10 ,5 };
  44. int c[] = { 5,3,7,2 };
  45. }
  46. void afisare() {
  47. nr_sol++;
  48. printf("castigul maxim");
  49. printf("%d",s_max);
  50. for (int i = 1; i <= n; i++)
  51. if (sol_max[i])
  52. printf("%d %d", g[i], c[i]);
  53. printf("\n");
  54.  
  55. }
  56. int main() {
  57. citire();
  58. back(1);
  59. afisare();
  60. system("pause");
  61. return 0;
  62. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement