Pagini recente » Cod sursa (job #2076388) | Cod sursa (job #2216123) | Cod sursa (job #855247) | Cod sursa (job #2228620) | Cod sursa (job #2515897)
#include <iostream>
#include <fstream>
#include <algorithm>
using namespace std;
const long N = 1005;
long m, n, r, c;
long long rez;
long sol[N], VectorS[N], v[N][N];
void Suma( )
{
long i, j;
long long sc = 0;
for ( i = 1; i <= m; i++ )
VectorS[i] = 0;
for ( i = 1; i <= n - r; i++)
for ( j = 1; j <= m; j++ )
VectorS[j] += v[sol[i]][j];
sort( VectorS + 1, VectorS + m + 1 );
for ( i = m ;i > c; i-- )
sc += VectorS[i];
if ( sc > rez )
rez = sc;
}
void bkt ( long k )
{
long i;
for ( i = sol[k - 1] + 1 ; i <= n; i++ )
{
sol[k] = i;
if( k == n - r )
Suma();
else bkt( k + 1 );
}
}
int main()
{
long i, j;
ifstream in ("elimin.in");
ofstream out ("elimin.out");
in >> n >> m >> r >> c;
for ( i = 1; i <= n; i++)
{
for ( j = 1; j <= m; j++ ){
if( n < m )
in >> v[i][j];
else in >> v[j][i];
}
}
if (n > m)
{
// n = n + m;
// m = n - m;
// n = n - m;
// r = r + c;
// c = r - c;
// r = r - c;
long z;
z = n;
n = m;
m = z;
z = r;
r = c;
c = z;
}
bkt ( 1 );
out << rez;
in.close();
out.close();
return 0;
}