Pagini recente » Cod sursa (job #1806932) | Istoria paginii runda/fminostress4/clasament | Cod sursa (job #1574440) | Cod sursa (job #2017379) | Cod sursa (job #2079423)
#include <fstream>
#include <algorithm>
using namespace std;
int N,M,R,C,i,j,Sol[950],Lin[950],Maxi,Total;
short int A[950][950];
bool Coloane[950];
void backtrack(int Nivel)
{
int i,j,k;
if(Nivel==C+1)
{
for(j=1;j<=M;j++)
{
Lin[j]=0;
for(k=1;k<=N;k++)
if(Coloane[k]==0)
Lin[j]+=A[j][k];
}//for j
sort(Lin+1,Lin+M+1);
Total=0;
for(j=R+1;j<=M;j++)
Total+=Lin[j];
if(Total>Maxi)
Maxi=Total;
}//if
else
for(i=Sol[Nivel-1]+1;i<=N;i++)
{
Sol[Nivel]=1;
Coloane[i]=1;
backtrack(Nivel+1);
Coloane[i]=0;
}//else
}
int main()
{
ifstream fin("elimin.in");
ofstream fout("elimin.out");
fin>>M>>N>>R>>C;
for(i=1;i<=M;i++)
for(j=1;j<=N;j++)
fin>>A[i][j];
backtrack(1);
fout<<Maxi;
fin.close ();
fout.close();
return 0;
}