Advertisement
Misipuk

KP___2

May 9th, 2018
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.15 KB | None | 0 0
  1. #include <iostream>
  2. #include <time.h>
  3. #include <thread>
  4.  
  5. using namespace std;
  6.  
  7. void countSum(int * mas, int c, int * sum, int k);
  8.  
  9.  
  10. int main()
  11. {
  12.     srand(time(0));
  13.     int n=100000, k=0;
  14.    // cout << "Enter n: ";
  15.     int sum1=0;
  16.     int sum2=0;
  17.     int sum3=0;
  18.     int sum4=0;
  19.     //int sum1=0
  20.    // int s
  21.     //cin >> n;
  22.     int mas[n];
  23.     int t=0;
  24.     cout << "Enter " << n << " numbers: ";
  25.     for (int i=0; i<n; i++){
  26.         //cin >> t;
  27.         mas[i]=rand()%125;
  28.     }
  29.     for(int j=0; j< 1000; j++){
  30.     t=n/4;
  31.     k=0;
  32.     thread thr1(countSum, &mas[0], t, &sum1, k);
  33.     k=n/4;
  34.     thread thr2(countSum, &mas[0], t, &sum2, k);
  35.     k=n/2;
  36.     thread thr3(countSum, &mas[0], t, &sum3, k);
  37.     k=3*n/4;
  38.     t=n/4 + n%4-1;
  39.     countSum(&mas[0], t, &sum4, k);
  40.  
  41.     thr1.join();
  42.     thr2.join();
  43.     thr3.join();
  44.     //thr4.join();
  45.     sum1 += (sum2+sum3+sum4);
  46.    // cout << "Sum = " << sum1;
  47.     }
  48.     return 0;
  49. }
  50.  
  51.  
  52. void countSum(int * mas, int c, int * sum, int k){
  53.     for (int i=k; i<(k+c); i++){
  54.         if (i%2==0){
  55.             *sum -= mas[i];
  56.         }else{
  57.             *sum += mas[i];
  58.         }
  59.     }
  60. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement