#include <bits/stdc++.h>
using namespace std;
const int N = 2005;
int n, m, k, x;
long long a[N][N];
bool check(long long num)
{
int cnt1 = 0, cnt2 = 0;
for (int i = 1; i <= n; i++)
{
int l = 1, r = m + 1;
while (l < r)
{
int mid = (l + r) >> 1;
if (a[i][mid] <= num) r = mid;
else l = mid + 1;
}
if (l > k) cnt1 += l - k;
else cnt2 += k - l;
}
return (cnt1 <= x && cnt1 <= cnt2);
}
int main()
{
cin >> n >> m;
for (int i = 1; i <= n; i++)
{
for (int j = 1; j <= m; j++)
{
cin >> a[i][j];
}
sort(a[i] + 1, a[i] + m + 1);
reverse(a[i] + 1, a[i] + m + 1);
}
cin >> k >> x;
long long l = 0, r = 2e18;
while (l < r)
{
long long mid = (l + r) >> 1;
if (check(mid)) r = mid;
else l = mid + 1;
}
cout << l;
return 0;
}
两个点TLE,其他全AC!