Pagini recente » Cod sursa (job #279693) | Cod sursa (job #2277989) | Cod sursa (job #2348031) | Cod sursa (job #1540741) | Cod sursa (job #1214408)
#include<fstream>
#include<algorithm>
using namespace std;
ifstream fi("elimin.in");
ofstream fo("elimin.out");
int suma_matrice,s_linie[600],s_coloana[20];
int i,j,n,m,r,c,a[20][601];
int suma_coloane,suma_linii;
int q,nr,nr_col,sol;
int main(){
fi>>n>>m>>r>>c;
if(n>m){
for(i=1;i<=n;i++)
for(j=1;j<=m;j++) fi>>a[i][j];
}
else{
for(i=1;i<=n;i++)
for(j=1;j<=m;j++) fi>>a[j][i];
swap(n,m);
swap(r,c);
}
suma_matrice=0;
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
{
suma_matrice+=a[i][j];
s_coloana[j]+=a[i][j];
}
nr=(1<<m);
for(q=0;q<nr;q++)
{
nr_col=0;
for(j=0;j<m;j++)
if(q&(1<<j)) nr_col++;
if(nr_col==c){
suma_coloane=0; suma_linii=0;
for(i=1;i<=n;i++) s_linie[i]=0;
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
if(q&(1<<(j-1))) suma_coloane+=a[i][j];
else s_linie[i]+=a[i][j];
sort(s_linie+1,s_linie+n+1);
for(i=1;i<=r;i++) suma_linii+=s_linie[i];
if(suma_matrice-suma_coloane-suma_linii>sol)
sol=suma_matrice-suma_coloane-suma_linii;
}
}
fo<<sol;
fi.close();
fo.close();
return 0;
}