Advertisement
Guest User

Untitled

a guest
Jun 20th, 2019
101
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.01 KB | None | 0 0
  1. static int F1 (int k, int n)
  2. {
  3. int sum = 0;
  4. int[] sum2 = new int[100];
  5. int max = 0;
  6. int min = int.MaxValue;
  7.  
  8. if (n == 0) return 0;
  9. else if (k == 1)
  10. {
  11. for (int i = 0; i < n; i++)
  12. sum += p[i];
  13. return sum;
  14. }
  15. else
  16. {
  17. for (int l = 1; l < n; l++)
  18. {
  19. for (int i = l; i < n; i++)
  20. sum2[l] += p[i];
  21.  
  22. max = Math.Max(sum2[l], F1(k - 1, n - 1));
  23. if (max < min) min = max;
  24. }
  25. return min;
  26. }
  27.  
  28. }
  29.  
  30. public static int F1Par(int k, int n)
  31. {
  32. int sum = 0;
  33. int[] sum2 = new int[100];
  34. int max = 0;
  35. int min = int.MaxValue;
  36.  
  37. int countCPU = 1;
  38. Task<int>[] tasks = new Task<int>[countCPU];
  39.  
  40. for (var j = 0; j < countCPU; j++)
  41. tasks[j] = Task.Factory.StartNew(
  42. (object b) =>
  43. {
  44. if (n == 0) return 0;
  45. else if (k == 1)
  46. {
  47. for (int i = 0; i < n; i++)
  48. sum += p[i];
  49. return sum;
  50. }
  51. else
  52. {
  53. for (int l = 1; l < n; l++)
  54. {
  55. for (int i = l; i < n; i++)
  56. sum2[l] += p[i];
  57.  
  58. max = Math.Max(sum2[l], F1(k - 1, n - 1));
  59. if (max < min) min = max;
  60. }
  61. return min;
  62. }
  63.  
  64. },j);
  65. int total = 0;
  66. for (var i = 0; i < countCPU; i++) total += tasks[i].Result;
  67. return total;
  68.  
  69. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement