#include <iostream>
#include <omp.h>
#include <chrono>
#include <cstdlib>
using namespace std;
using namespace chrono;
int main()
{
int n = 10000;
int arr[n];
for(int i=0;i<n;i++)
arr[i] = rand()%1000;
int min_val = arr[0];
int max_val = arr[0];
long long sum = 0;
auto start = high_resolution_clock::now();
#pragma omp parallel for reduction(min:min_val) reduction(max:max_val) reduction(+:sum)
for(int i=0;i<n;i++)
{
if(arr[i] < min_val)
min_val = arr[i];
if(arr[i] > max_val)
max_val = arr[i];
sum += arr[i];
}
auto end = high_resolution_clock::now();
double avg = (double)sum/n;
cout<<"Minimum value: "<<min_val<<endl;
cout<<"Maximum value: "<<max_val<<endl;
cout<<"Sum: "<<sum<<endl;
cout<<"Average: "<<avg<<endl;
cout<<"Execution Time: "
<<duration_cast<milliseconds>(end-start).count()
<<" ms"<<endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8b21wLmg+CiNpbmNsdWRlIDxjaHJvbm8+CiNpbmNsdWRlIDxjc3RkbGliPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKdXNpbmcgbmFtZXNwYWNlIGNocm9ubzsKCmludCBtYWluKCkKewogICAgaW50IG4gPSAxMDAwMDsKICAgIGludCBhcnJbbl07CgogICAgZm9yKGludCBpPTA7aTxuO2krKykKICAgICAgICBhcnJbaV0gPSByYW5kKCklMTAwMDsKCiAgICBpbnQgbWluX3ZhbCA9IGFyclswXTsKICAgIGludCBtYXhfdmFsID0gYXJyWzBdOwogICAgbG9uZyBsb25nIHN1bSA9IDA7CgogICAgYXV0byBzdGFydCA9IGhpZ2hfcmVzb2x1dGlvbl9jbG9jazo6bm93KCk7CgogICAgI3ByYWdtYSBvbXAgcGFyYWxsZWwgZm9yIHJlZHVjdGlvbihtaW46bWluX3ZhbCkgcmVkdWN0aW9uKG1heDptYXhfdmFsKSByZWR1Y3Rpb24oKzpzdW0pCiAgICBmb3IoaW50IGk9MDtpPG47aSsrKQogICAgewogICAgICAgIGlmKGFycltpXSA8IG1pbl92YWwpCiAgICAgICAgICAgIG1pbl92YWwgPSBhcnJbaV07CgogICAgICAgIGlmKGFycltpXSA+IG1heF92YWwpCiAgICAgICAgICAgIG1heF92YWwgPSBhcnJbaV07CgogICAgICAgIHN1bSArPSBhcnJbaV07CiAgICB9CgogICAgYXV0byBlbmQgPSBoaWdoX3Jlc29sdXRpb25fY2xvY2s6Om5vdygpOwoKICAgIGRvdWJsZSBhdmcgPSAoZG91YmxlKXN1bS9uOwoKICAgIGNvdXQ8PCJNaW5pbXVtIHZhbHVlOiAiPDxtaW5fdmFsPDxlbmRsOwogICAgY291dDw8Ik1heGltdW0gdmFsdWU6ICI8PG1heF92YWw8PGVuZGw7CiAgICBjb3V0PDwiU3VtOiAiPDxzdW08PGVuZGw7CiAgICBjb3V0PDwiQXZlcmFnZTogIjw8YXZnPDxlbmRsOwoKICAgIGNvdXQ8PCJFeGVjdXRpb24gVGltZTogIgogICAgICAgIDw8ZHVyYXRpb25fY2FzdDxtaWxsaXNlY29uZHM+KGVuZC1zdGFydCkuY291bnQoKQogICAgICAgIDw8IiBtcyI8PGVuZGw7CgogICAgcmV0dXJuIDA7Cn0=