#include<iostream>
#include<omp.h>
#include<vector>
#include<climits>
using namespace std;
void min_reduction(vector<int>& a){
int min_value = INT_MAX;
#pragma omp parallel for reduction(min : min_value)
for(int i = 0; i< a.size() ; i++){
if(a[i]<min_value){
min_value = a[i];
}
}
cout<<"Min min_value : "<<min_value<<endl;
};
void average_reduction(vector<int>&a){
int sum = 0;
#pragma omp parallel for reductio(+: sum )
for(int i = 0; i< a.size() ; i++){
sum = sum+a[i];
}
cout<<"Average : "<<(double)sum/a.size()<<endl;
}
int main(){
vector<int> a;
a.push_back(5);
a.push_back(1);
a.push_back(3);
a.push_back(1);
min_reduction(a);
average_reduction(a);
return 0;
}
I2luY2x1ZGU8aW9zdHJlYW0+CiNpbmNsdWRlPG9tcC5oPgojaW5jbHVkZTx2ZWN0b3I+CiNpbmNsdWRlPGNsaW1pdHM+Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwp2b2lkIG1pbl9yZWR1Y3Rpb24odmVjdG9yPGludD4mIGEpewogIGludCBtaW5fdmFsdWUgPSBJTlRfTUFYOwogICNwcmFnbWEgb21wIHBhcmFsbGVsIGZvciByZWR1Y3Rpb24obWluIDogbWluX3ZhbHVlKQogIGZvcihpbnQgaSA9IDA7IGk8IGEuc2l6ZSgpIDsgaSsrKXsKICAgIGlmKGFbaV08bWluX3ZhbHVlKXsKICAgICAgbWluX3ZhbHVlID0gYVtpXTsKICAgIH0KICB9CiAgCiAgY291dDw8Ik1pbiBtaW5fdmFsdWUgOiAiPDxtaW5fdmFsdWU8PGVuZGw7Cn07Cgp2b2lkIGF2ZXJhZ2VfcmVkdWN0aW9uKHZlY3RvcjxpbnQ+JmEpewoJaW50IHN1bSA9IDA7CgkjcHJhZ21hIG9tcCBwYXJhbGxlbCBmb3IgcmVkdWN0aW8oKzogc3VtICkKCWZvcihpbnQgaSA9IDA7IGk8IGEuc2l6ZSgpIDsgaSsrKXsKCQlzdW0gPSBzdW0rYVtpXTsKCX0KCQoJY291dDw8IkF2ZXJhZ2UgOiAiPDwoZG91YmxlKXN1bS9hLnNpemUoKTw8ZW5kbDsKfQoKaW50IG1haW4oKXsKICB2ZWN0b3I8aW50PiBhOwogIGEucHVzaF9iYWNrKDUpOwogIGEucHVzaF9iYWNrKDEpOwogIGEucHVzaF9iYWNrKDMpOwogIGEucHVzaF9iYWNrKDEpOwogIAogIAogIG1pbl9yZWR1Y3Rpb24oYSk7CiAgYXZlcmFnZV9yZWR1Y3Rpb24oYSk7CiAgcmV0dXJuIDA7Cn0=