fork download
  1. #include<iostream>
  2. #include<omp.h>
  3. #include<vector>
  4. #include<climits>
  5.  
  6. using namespace std;
  7. void min_reduction(vector<int>& a){
  8. int min_value = INT_MAX;
  9. #pragma omp parallel for reduction(min : min_value)
  10. for(int i = 0; i< a.size() ; i++){
  11. if(a[i]<min_value){
  12. min_value = a[i];
  13. }
  14. }
  15.  
  16. cout<<"Min min_value : "<<min_value<<endl;
  17. };
  18.  
  19. void average_reduction(vector<int>&a){
  20. int sum = 0;
  21. #pragma omp parallel for reductio(+: sum )
  22. for(int i = 0; i< a.size() ; i++){
  23. sum = sum+a[i];
  24. }
  25.  
  26. cout<<"Average : "<<(double)sum/a.size()<<endl;
  27. }
  28.  
  29. int main(){
  30. vector<int> a;
  31. a.push_back(5);
  32. a.push_back(1);
  33. a.push_back(3);
  34. a.push_back(1);
  35.  
  36.  
  37. min_reduction(a);
  38. average_reduction(a);
  39. return 0;
  40. }
Success #stdin #stdout 0.01s 5280KB
stdin
Standard input is empty
stdout
Min min_value : 1
Average : 2.5