Pagini recente » Cod sursa (job #53516) | Cod sursa (job #717338) | Cod sursa (job #1342905) | Cod sursa (job #2762116) | Cod sursa (job #1072286)
#include <fstream>
#include <algorithm>
using namespace std;
int i, j, M, N, R, C;
int ANS;
int Sum[700];
int a[700][700];
bool s[700];
void solve()
{
for (int j=0;j<=N;++j) Sum[j]=0;
int c, l;
for (c=1;c<=M;++c)
{
if (!s[c])
for (l=1;l<=N;++l) Sum[l]+=a[l][c];
}
sort(Sum+1,Sum+N+1);
int cnt=0;
for (l=R+1;l<=N;++l) cnt+=Sum[l];
if (cnt>ANS) ANS=cnt;
}
void back(int k)
{
if (k==C+1) solve();
else
{
for (int i=1;i<=M;++i)
{
if (!s[i])
{
s[i]=true;
back(k+1);
s[i]=false;
}
}
}
}
int main()
{
ifstream f("elimin.in");
ofstream g("elimin.out");
f>>N>>M>>R>>C;
if (N>M)
{
for (i=1;i<=N;++i)
for (j=1;j<=M;++j)
f>>a[i][j];
}
else
{
for (j=1;j<=N;++j)
for (i=1;i<=M;++i)
f>>a[i][j];
swap(N, M);
swap(R, C);
}
back(1);
g<<ANS<<'\n';
return 0;
}