fork download
  1. #include <iostream>
  2. #include <omp.h>
  3. #include <chrono>
  4. #include <cstdlib>
  5.  
  6. using namespace std;
  7. using namespace chrono;
  8.  
  9. int main()
  10. {
  11. int n = 10000;
  12. int arr[n];
  13.  
  14. for(int i=0;i<n;i++)
  15. arr[i] = rand()%1000;
  16.  
  17. int min_val = arr[0];
  18. int max_val = arr[0];
  19. long long sum = 0;
  20.  
  21. auto start = high_resolution_clock::now();
  22.  
  23. #pragma omp parallel for reduction(min:min_val) reduction(max:max_val) reduction(+:sum)
  24. for(int i=0;i<n;i++)
  25. {
  26. if(arr[i] < min_val)
  27. min_val = arr[i];
  28.  
  29. if(arr[i] > max_val)
  30. max_val = arr[i];
  31.  
  32. sum += arr[i];
  33. }
  34.  
  35. auto end = high_resolution_clock::now();
  36.  
  37. double avg = (double)sum/n;
  38.  
  39. cout<<"Minimum value: "<<min_val<<endl;
  40. cout<<"Maximum value: "<<max_val<<endl;
  41. cout<<"Sum: "<<sum<<endl;
  42. cout<<"Average: "<<avg<<endl;
  43.  
  44. cout<<"Execution Time: "
  45. <<duration_cast<milliseconds>(end-start).count()
  46. <<" ms"<<endl;
  47.  
  48. return 0;
  49. }
Success #stdin #stdout 0.01s 5316KB
stdin
Standard input is empty
stdout
Minimum value: 0
Maximum value: 999
Sum: 4969211
Average: 496.921
Execution Time: 0 ms