Pagini recente » Cod sursa (job #2788511) | Cod sursa (job #2276211) | Cod sursa (job #893169) | Cod sursa (job #2178185) | Cod sursa (job #1642080)
#include <fstream>
#include <algorithm>
using namespace std;
ifstream f("elimin.in");
ofstream g("elimin.out");
long a[300][300], n, m, i, j, r, c;
long sl[300], sc[300];
bool fl[300];
long gl[300], gc[300], max1 = -2100000000;
void bkt(int k)
{
long i, j, stot = 0;
if (k == r+1)
{
for (i = 1; i <= m; i++)
sc[i] = 0;
for (i = 1; i <= n; i++)
if (fl[i] == 0)
{
for (j = 1; j <= m; j++)
sc[j] += a[i][j], stot += a[i][j];
}
sort(sc+1, sc+m+1);
for (i = 1; i <= c; i++)
stot -= sc[i];
if (stot > max1)
max1 = stot;
}
else
{
for (i = gl[k-1]+1; i <= n; i++)
{
fl[i] = 1;
gl[k] = i;
bkt(k+1);
fl[i] = 0;
}
}
}
int main()
{
f >> n >> m >> r >> c;
for (i = 1; i <= n; i++)
for (j = 1; j <= m; j++)
f >> a[i][j];
bkt(1);
g << max1;
return 0;
}