救命
有谁告诉我错在哪里了吗?
#include<iostream>
#include<algorithm>using namespace std;
int main(){
int n,m,k;
int a[20][20]={0};
int sumi[20]={0},sumj[20]={0};
cin>>n>>m>>k;
for(int i=0;i<n;i++){
for(int j=0;j<m;j++){
cin>>a[i][j];
}
}
int maxi=-1,maxj=-1,maxn=0;
char maxc;
for(int i=0;i<n;i++){
for(int j=0;j<m;j++){
sumi[i]+=a[i][j];
}
if(sumi[i]>maxn){
maxn=sumi[i];
maxi=i;
maxc='r';//行
}
}
for(int j=0;j<m;j++){
for(int i=0;i<n;i++){
sumj[j]+=a[i][j];
}
if(sumj[j]>maxn){
maxn=sumj[j];
maxj=j;
maxc='l';//列
}
}
long long ssum=0;
for(int i=0;i<k;i++){
ssum+=maxn;
maxn=0;
if(maxc=='r'){
sumi[maxi]=0;
for(int j=0;j<m;j++){
sumj[j]-=a[maxi][j];
a[maxi][j]=0;
if(sumj[j]>maxn){
maxn=sumj[j];
maxj=j;
maxc='l';//列
}
}
for(int i=0;i<n;i++){
if(sumi[i]>maxn){
maxn=sumi[i];
maxi=i;
maxc='r';//行
}
}
}else{
sumj[maxj]=0;
for(int i=0;i<n;i++){
sumi[i]-=a[i][maxj];
a[i][maxj]=0;
if(sumi[i]>maxn){
maxn=sumi[i];
maxi=i;
maxc='r';//行
}
}
for(int j=0;j<m;j++){
if(sumj[j]>maxn){
maxn=sumj[j];
maxj=j;
maxc='l';//列
}
}
}
}
cout<<ssum<<endl;
return 0;
}