Advertisement
Cristina_Hustea

Untitled

Apr 14th, 2020
27
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.98 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. void back(int k) {
  31. int i;
  32. for (i = 0; i <= 1; i++) {
  33. v[k] = i;
  34. if (valid(k))
  35. if (k == n) optim();
  36. else back(k + 1);
  37. }
  38. }
  39.  
  40. void citire() {
  41. int n = 4, G = 20;
  42. int g[] = { 5, 10, 10 ,5 };
  43. int c[] = { 5,3,7,2 };
  44. }
  45. void afisare() {
  46. nr_sol++;
  47. printf("castigul maxim");
  48. printf("%d", s_max);
  49. for (int i = 1; i <= n; i++)
  50. if (sol_max[i])
  51. printf("%d %d", g[i], c[i]);
  52. printf("\n");
  53.  
  54. }
  55. int main() {
  56. citire();
  57. back(1);
  58. afisare();
  59. system("pause");
  60. return 0;
  61. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement