Cod sursa(job #132306)

Utilizator razvi9Jurca Razvan razvi9 Data 5 februarie 2008 16:19:19
Problema Elimin Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.81 kb
#include<cstdio>
#include<cstring>
#include<algorithm>
int n,m,r,c,a[100][1000],s[1000],i,j,k,aux,lg,smax,sum;
int main()
{
	freopen("elimin.in","r",stdin);
	freopen("elimin.out","w",stdout);
	scanf("%d %d %d %d",&n,&m,&r,&c);
	smax=1<<31;
	if(n<=m){
		for(i=1;i<=n;i++)
			for(j=1;j<=m;j++)
				scanf("%d",&a[i][j]);}
	else{
		aux=n;
		n=m;
		m=aux;
		aux=r;
		r=c;
		c=aux;
		for(j=1;j<=m;j++)
			for(i=1;i<=n;i++)
				scanf("%d",&a[n-i+1][j]);}
	for(k=0;k<(1<<n);k++){
		j=1;i=0;
		while(j<=k){
			if(k&j) i++;
			j<<=1;}
		if(i!=r) continue;
		memset(s,0,sizeof(s));
		for(i=1,aux=1;i<=n;i++,aux<<=1)
			if(!(k&aux))
				for(j=1;j<=m;j++)
					s[j]+=a[i][j];
		std::sort(s+1,s+m+1);
		sum=0;
		for(i=c+1;i<=m;i++)
			sum=sum+s[i];
		if(sum>smax) smax=sum;}
	printf("%d",smax);




}