Cod sursa(job #34556)

Utilizator pitradaPit-Rada Ionel-Vasile pitrada Data 20 martie 2007 21:20:50
Problema Elimin Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.88 kb
#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;
}