Pagini recente » Cod sursa (job #958362) | Cod sursa (job #867615) | Cod sursa (job #135511) | Cod sursa (job #2439960) | Cod sursa (job #567449)
Cod sursa(job #567449)
# include <fstream>
# include <algorithm>
using namespace std;
std :: ifstream f ("elimin.in");
std :: ofstream g ("elimin.out");
int a[1000][1000];
int s[1000], x[1000];
int n, m, l, c, L, C, sol, i, j;
void make (){
int i, j, st = 0;
for (i = 1; i <= m; ++i) s[i] = 0;
for (i = 1; i <= n; ++i)
for (j = 1; j <= m; ++j)
s[j] += a[i][j] * (!x[i]);
sort (s + 1, s + m + 1);
for (i = m; i > c; --i)
st = st + s[i];
if (sol < st) sol = st;
}
void back (){
int k = 1;
x[k] = -1;
do {
while (x[k] < 1){
++x[k];
L = L + x[k];
if (n == k){
if (L == l) make ();
}
else{
++k;
L = L - x[k];
x[k] = -1;
}
}
--k;
} while ( k > 0 );
}
int main (){
f >> n >> m >> l >> c;
if (n <= m){
for (i = 1; i <= n; ++i)
for (j = 1; j <= n; ++j)
f >> a[i][j];
back ();
}
else{
for (i = 1; i <= n; ++i)
for (j = 1; j <= n; ++j)
f >> a[j][i];
n ^= m ^= n ^= m;
l ^= c ^= l ^= c;
back ();
}
g << sol << '\n';
g.close ();
return 0;
}