Pagini recente » Cod sursa (job #2136549) | Cod sursa (job #1709487) | Cod sursa (job #1026881) | Cod sursa (job #3197952) | Cod sursa (job #2116464)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("elimin.in");
ofstream fout("elimin.out");
int n, m, l, c, smat, mat[8000][8000], smin=INT_MAX;
bool stl[8000], stc[8000];
int nrl, nrc;
void solutie()
{
int i, j, sm=0;
for(i=1; i<=n; i++)
for(j=1; j<=m; j++)
if(stl[i]==1 || stc[j]==1)
sm+=mat[i][j];
smin=min(smin,sm);
}
void btc(int p)
{
for(int i=0; i<=1; i++)
{
nrc+=i;
stc[p]=i;
if(nrc==c) solutie();
else if(p<m) btc(p+1);
nrc-=i;
stc[p]=0;
}
}
void btl(int p)
{
for(int i=0; i<=1; i++)
{
nrl+=i;
stl[p]=i;
if(nrl==l) btc(1);
else if(p<n) btl(p+1);
nrl-=i;
stl[p]=0;
}
}
int main()
{
int i, j;
fin>>n>>m>>l>>c;
for(i=1; i<=n; i++)
for(j=1; j<=m; j++)
{
fin>>mat[i][j];
smat+=mat[i][j];
}
btl(1);
fout<<smat-smin<<'\n';
return 0;
}