You are given n points on a line with their coordinates x i. Find the point x so the sum of distances to the given points is minimal.
Input
The first line contains integer n (1 ≤ n ≤ 3·105) — the number of points on the line.
The second line contains n integers x i ( - 109 ≤ x i ≤ 109) — the coordinates of the given n points.
Output
Print the only integer x — the position of the optimal point on the line. If there are several optimal points print the position of the leftmost one. It is guaranteed that the answer is always the integer.Exampleinput
4
1 2 3 4
output
2
Solution:
#include <bits/stdc++.h>
using namespace std;
int a[1234567];
int main() {
int n;
scanf("%d", &n);
for (int i = 0; i < n; i++) {
scanf("%d", a + i);
}
sort(a, a + n);
printf("%d\n", a[(n - 1) / 2]);
return 0;
}
Related posts:
Pick's Theorem - area of lattice polygons
May Holidays
New Year Permutation
Bad Ugly Numbers
Alice and Hairdresser
Borya and Hanabi
New Year Domino
Sieve of Eratosthenes Having Linear Time Complexity
Subarray Cuts
New Year Ratings Change
Close Vertices
Interesting Subarray
Third Month Insanity
Finding the equation of a line for a segment
Deleting from a data structure in $O(T(n)\log n)$
Number Transformation
Preparing for Merge Sort
Enduring Exodus
Lingua Romana
Product transformation
Submask Enumeration
Perfect Security
Divide Points
Magic Odd Square
Spy Syndrome 2
MP3
Special Task
Check if two segments intersect
Function
Meaningless Operations
Sereja and Sets
Bear and Paradox