-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathminMax.cpp
More file actions
31 lines (25 loc) · 820 Bytes
/
minMax.cpp
File metadata and controls
31 lines (25 loc) · 820 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#include<bits/stdc++.h>
using namespace std;
pair<int, int> findMaxMin(vector<int> &v, int low, int high){
if(low == high){
return make_pair(v[low], v[low]);
}
if(low == high + 1){
return make_pair(min(v[low], v[high]), max(v[low], v[high]));
}
int mid = low + (high - low) / 2;
pair<int, int> leftMaxMin = findMaxMin(v, low, mid);
pair<int, int> rightMaxMin = findMaxMin(v, mid + 1, high);
return make_pair(min(leftMaxMin.first, rightMaxMin.first), max(leftMaxMin.second, rightMaxMin.second));
}
int main()
{
int n; cin >> n;
vector<int> v(n);
for(int i = 0; i < n; i++){
cin >> v[i];
}
pair<int, int> maxMin = findMaxMin(v, 0, n - 1);
cout << "Minimum: " << maxMin.first << endl;
cout << "Maximum: " << maxMin.second << endl;
}