看不到测试数据,但样例过了
#include<bits/stdc++.h>
using namespace std;
const int N = 3010;
int n,m,k;
int sum_h[N],sum_l[N],a[N][N];
char c;
priority_queue<int,vector<int>,greater<int> > q;
void qread(int *x){
*x = 0;
c = getchar();
while(c<'0'||c>'9'){
c = getchar();
}
while(c>='0'&&c<='9'){
*x=*x*10+c-'0';
c = getchar();
}
}
int main(){
qread(&n);
qread(&m);
qread(&k);
for(int i = 1;i <= n;i++){
for(int j = 1;j <= m;j++){
qread(&a[i][j]);
sum_h[i]+=a[i][j];
sum_l[j]+=a[i][j];
}
}
for(int i = 1;i <= n;i++){
for(int j = 1;j <= m;j++){
if(a[i][j]<sum_h[i]+sum_l[j]){
a[i][j]=ceil((double)(sum_h[i]+sum_l[j]-a[i][j])/(n+m-1));
}
else{
a[i][j]=0;
}
q.push(a[i][j]);
}
}
k--;
while(k--){
q.pop();
}
printf("%c",q.top()+'0');
return 0;
}