forked from kothariji/competitive-programming
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathPrint_the_left_element.cpp
58 lines (47 loc) · 1.76 KB
/
Print_the_left_element.cpp
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
/*
* कर्मणये वाधिकारस्ते मां फलेषु कदाचन ।
* मां कर्मफलहेतुर्भू: मांते संङगोस्त्वकर्मणि ॥
*/
#include <bits/stdc++.h>
using namespace std;
#define bug(...) __f (#__VA_ARGS__, __VA_ARGS__)
template <typename Arg1>
void __f(const char* name, Arg1&& arg1) { cout << name << " : " << arg1 << endl; }
template <typename Arg1, typename... Args>
void __f(const char* names, Arg1&& arg1, Args&&... args) {
const char* comma = strchr(names + 1, ',');
cout.write(names, comma - names) << " : " << arg1 << " | "; __f(comma + 1, args...);
}
/*
* Given a array of length N, at each step it is reduced by 1 element. In the first step the maximum element would be removed, while in the second step minimum element of the remaining array would be removed, in the third step again the maximum and so on. Continue this till the array contains only 1 element. And find the final element remaining in the array.
*/
int leftElement(int arr[], int n) {
sort(arr, arr + n);
if(n%2 == 0) {
return arr[n/2 - 1];
} else {
return arr[n/2];
}
}
void solve() {
int n;
cin >> n;
int arr[n];
for (int i = 0; i < n; i++) {
cin >> arr[i];
}
cout << leftElement(arr, n);
}
int32_t main() {
ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
#ifndef ONLINE_JUDGE
freopen("/home/aman/Desktop/30 Days of Code/input.txt", "r", stdin);
freopen("/home/aman/Desktop/30 Days of Code/output.txt", "w", stdout);
#endif
clock_t z = clock();
int t = 1;
cin >> t;
while (t--) solve();
cerr << "Run Time : " << ((double)(clock() - z) / CLOCKS_PER_SEC) << endl;
return 0;
}