Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- static int F1 (int k, int n)
- {
- int sum = 0;
- int[] sum2 = new int[100];
- int max = 0;
- int min = int.MaxValue;
- if (n == 0) return 0;
- else if (k == 1)
- {
- for (int i = 0; i < n; i++)
- sum += p[i];
- return sum;
- }
- else
- {
- for (int l = 1; l < n; l++)
- {
- for (int i = l; i < n; i++)
- sum2[l] += p[i];
- max = Math.Max(sum2[l], F1(k - 1, n - 1));
- if (max < min) min = max;
- }
- return min;
- }
- }
- public static int F1Par(int k, int n)
- {
- int sum = 0;
- int[] sum2 = new int[100];
- int max = 0;
- int min = int.MaxValue;
- int countCPU = 1;
- Task<int>[] tasks = new Task<int>[countCPU];
- for (var j = 0; j < countCPU; j++)
- tasks[j] = Task.Factory.StartNew(
- (object b) =>
- {
- if (n == 0) return 0;
- else if (k == 1)
- {
- for (int i = 0; i < n; i++)
- sum += p[i];
- return sum;
- }
- else
- {
- for (int l = 1; l < n; l++)
- {
- for (int i = l; i < n; i++)
- sum2[l] += p[i];
- max = Math.Max(sum2[l], F1(k - 1, n - 1));
- if (max < min) min = max;
- }
- return min;
- }
- },j);
- int total = 0;
- for (var i = 0; i < countCPU; i++) total += tasks[i].Result;
- return total;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement