#include <bits/stdc++.h>
#define ll long long
using namespace std;
ll count_smaller_elements(vector<int> &nums, vector<pair<int, int>> &diffs, ll x, ll k)
{
ll cnt=0;
for(ll i=1; i<nums.size()-1; i++)
{
int minm, maxm;
minm = diffs[i-1].first;
maxm = diffs[i-1].second;
if(maxm<=x)
{
cnt+=(nums.size()-i);
if(cnt>=k) return cnt;
}
else
{
for(ll j=0; j<nums.size()-i; j++)
{
if(abs(nums[j]-nums[j+i])<=x) cnt++;
if(cnt>=k) return cnt;
}
}
}
return cnt;
}
ll find_kth_smallest(vector<int> &nums, vector<pair<int, int>> &diffs, ll k, ll left, ll right)
{
if(left>right) return -1;
ll mid = (left+right)/2;
if(count_smaller_elements(nums, diffs, mid, k)>=k)
{
ll next = find_kth_smallest(nums, diffs, k, left, mid-1);
if(next==-1) return mid;
return next;
}
return find_kth_smallest(nums, diffs, k, mid+1, right);
}
int main() {
// your code goes here
ll n, p;
cin>>n;
vector<int> nums(n);
for(int i=0; i<n; i++)
{
cin>>nums[i];
}
sort(nums.begin(), nums.end());
vector<pair<int, int>> diffs(n);
for(ll i=1; i<nums.size()-1; i++)
{
int minm=INT_MAX, maxm=INT_MIN;
for(ll j=0; j<nums.size()-i; j++)
{
int d=(abs(nums[j]-nums[j+i]));
minm = min(minm, d);
maxm = max(maxm, d);
}
diffs[i-1]={minm, maxm};
}
ll k;
cin>>k;
cout<<"test"<<endl;
cout<<find_kth_smallest(nums, diffs, k, 0, nums.back()-nums.front());
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CiNkZWZpbmUgbGwgbG9uZyBsb25nCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgpsbCBjb3VudF9zbWFsbGVyX2VsZW1lbnRzKHZlY3RvcjxpbnQ+ICZudW1zLCB2ZWN0b3I8cGFpcjxpbnQsIGludD4+ICZkaWZmcywgbGwgeCwgbGwgaykKewoJbGwgY250PTA7CgkKCWZvcihsbCBpPTE7IGk8bnVtcy5zaXplKCktMTsgaSsrKQoJewkKCQlpbnQgbWlubSwgbWF4bTsKCQltaW5tID0gZGlmZnNbaS0xXS5maXJzdDsKCQltYXhtID0gZGlmZnNbaS0xXS5zZWNvbmQ7CgkJaWYobWF4bTw9eCkKCQl7CQoJCQljbnQrPShudW1zLnNpemUoKS1pKTsKCQkJaWYoY250Pj1rKSByZXR1cm4gY250OwoJCX0KCQllbHNlCgkJewkKCQkJZm9yKGxsIGo9MDsgajxudW1zLnNpemUoKS1pOyBqKyspCgkJCXsKCQkJCWlmKGFicyhudW1zW2pdLW51bXNbaitpXSk8PXgpIGNudCsrOwoJCQkJaWYoY250Pj1rKSByZXR1cm4gY250OwoJCQl9CgkJfQoJfQoJcmV0dXJuIGNudDsKfQoKbGwgZmluZF9rdGhfc21hbGxlc3QodmVjdG9yPGludD4gJm51bXMsIHZlY3RvcjxwYWlyPGludCwgaW50Pj4gJmRpZmZzLCBsbCBrLCBsbCBsZWZ0LCBsbCByaWdodCkKewoJaWYobGVmdD5yaWdodCkgcmV0dXJuIC0xOwoJCglsbCBtaWQgPSAobGVmdCtyaWdodCkvMjsKCQoJaWYoY291bnRfc21hbGxlcl9lbGVtZW50cyhudW1zLCBkaWZmcywgbWlkLCBrKT49aykKCXsKCQlsbCBuZXh0ID0gZmluZF9rdGhfc21hbGxlc3QobnVtcywgZGlmZnMsIGssIGxlZnQsIG1pZC0xKTsKCQlpZihuZXh0PT0tMSkgcmV0dXJuIG1pZDsKCQlyZXR1cm4gbmV4dDsKCX0KCXJldHVybiBmaW5kX2t0aF9zbWFsbGVzdChudW1zLCBkaWZmcywgaywgbWlkKzEsIHJpZ2h0KTsKfQoKaW50IG1haW4oKSB7CiAgICAvLyB5b3VyIGNvZGUgZ29lcyBoZXJlCglsbCBuLCBwOwoJY2luPj5uOwoJdmVjdG9yPGludD4gbnVtcyhuKTsKCWZvcihpbnQgaT0wOyBpPG47IGkrKykKCXsKCQljaW4+Pm51bXNbaV07Cgl9Cglzb3J0KG51bXMuYmVnaW4oKSwgbnVtcy5lbmQoKSk7Cgl2ZWN0b3I8cGFpcjxpbnQsIGludD4+IGRpZmZzKG4pOwoJZm9yKGxsIGk9MTsgaTxudW1zLnNpemUoKS0xOyBpKyspCgl7CQoJCWludCBtaW5tPUlOVF9NQVgsIG1heG09SU5UX01JTjsKCQlmb3IobGwgaj0wOyBqPG51bXMuc2l6ZSgpLWk7IGorKykKCQl7CgkJCWludCBkPShhYnMobnVtc1tqXS1udW1zW2oraV0pKTsKCQkJbWlubSA9IG1pbihtaW5tLCBkKTsKCQkJbWF4bSA9IG1heChtYXhtLCBkKTsKCQl9CgkJZGlmZnNbaS0xXT17bWlubSwgbWF4bX07Cgl9CglsbCBrOwoJY2luPj5rOwoJY291dDw8InRlc3QiPDxlbmRsOwoJY291dDw8ZmluZF9rdGhfc21hbGxlc3QobnVtcywgZGlmZnMsIGssIDAsIG51bXMuYmFjaygpLW51bXMuZnJvbnQoKSk7CiAgICByZXR1cm4gMDsKfQ==