Pagini recente » Cod sursa (job #2437130) | Cod sursa (job #325138) | Cod sursa (job #179267) | Cod sursa (job #769133) | Cod sursa (job #34557)
Cod sursa(job #34557)
#include<fstream>
#include<stdlib.h>
#include<math.h>
using namespace std;
fstream fin,fout;
int M,N,R,C,a[7300],LIN[7300],RR,CC,i;
long smax,scol[7300];
void sortez(){
int i,j;
long aux;
for (i=0;i<CC-1;i++)
for (j=i+1;j<N;j++)
if (scol[i]<scol[j]){
aux=scol[i];scol[i]=scol[j];scol[j]=aux;
}
}
void subm(int k){
int i,l,j;
long s;
if (k>RR){
for (j=0;j<N;j++){
s=0;
for (l=0;l<RR;l++){
s=s+a[LIN[l]*N+j+1];
}
scol[j]=s;
}
sortez();
s=0;
for (j=0;j<CC;j++)s=s+scol[j];
if (s>smax)smax=s;
}
else
for (i=LIN[k-1]+1;i<M-RR+k;i++){
LIN[k]=i;
subm(k+1);
}
}
int main(void)
{
fin.open("elimin.in",ios::in);
fout.open("elimin.out",ios::out);
fin>>M>>N>>R>>C;
RR=M-R;
CC=N-C;
for (i=0;i<M*N;i++) fin>>a[i];
smax=0;
subm(1);
fout<<smax<<endl;
fin.close();
fout.close();
return 0;
}