Pagini recente » Cod sursa (job #2712578) | Cod sursa (job #395070) | Cod sursa (job #2520011) | Cod sursa (job #2092542) | Cod sursa (job #2680615)
#include <cstdio>
#include <algorithm>
#define MAX_N 15
#define MAX_M 7294
using namespace std;
int mat[MAX_N][MAX_M], v[MAX_M];
int main() {
FILE *fin, *fout;
int n, m, r, c, maxs, s, a, b1, aux, col, i, j;
fin = fopen( "elimin.in", "r" );
fscanf( fin, "%d%d%d%d", &n, &m, &r, &c );
for ( i = 0; i < n; i++ ) {
for ( j = 0; j < m; j++ ) {
if ( n > m )
fscanf( fin, "%d", &mat[j][i] );
else
fscanf( fin, "%d", &mat[i][j] );
}
}
if ( n > m ) {
aux = n;
n = m;
m = aux;
aux = r;
r = c;
c = aux;
}
fclose( fin );
maxs = 0;
for ( i = 0; i < (1 << n); i++ ) {
a = i;
b1 = 0;
while ( a > 0 ) {
if ( a & 1 )
b1++;
a >>= 1;
}
if ( b1 == r ) {
for( col = 0; col < m; col++ )
v[col] = 0;
for( j = 0; j < n; j++ ) {
if( (i & (1 << j)) == 0 ) {
for( col = 0; col < m; col++ )
v[col] += mat[j][col];
}
}
sort( v, v + m );
s = 0;
for( j = c; j < m; j++ )
s += v[j];
if ( s > maxs )
maxs = s;
}
}
fout = fopen( "elimin.out", "w" );
fprintf( fout, "%d", maxs );
fclose( fout );
return 0;
}