Pagini recente » Cod sursa (job #1486073) | Cod sursa (job #2799416) | Cod sursa (job #1480692) | Cod sursa (job #1698317) | Cod sursa (job #2314768)
#include<fstream>
#include<algorithm>
using namespace std;
ifstream fin("elimin.in");
ofstream fout("elimin.out");
int frecv[1003],c,m,sum[1003],n,a[1003][1003],r,sol,i,aux[1003],j;
void backtracking(int k)
{
int i, j;
if(k>c)
{
for(i=1;i<=m;i++)
{
sum[i]=0;
for (j=1;j<=n;j++)
{
if(frecv[j]==0)
{
sum[i]=sum[i]+a[i][j];
}
}
}
sort(sum+1,sum+m+1);
int sum_aux=0;
for (i=r+1;i<=m;++i)
{
sum_aux =sum_aux+ sum[i];
}
sol=max(sum_aux,sol);
}
else
{
for (i=aux[k-1]+1;i<=n-c+k;++i)
{
frecv[i] = 1;
aux[k]=i;
backtracking(k+1);
frecv[i]=0;
}
}
}
int main()
{
fin>>m>>n>>r>>c;
if(m>=n)
{
for(i=1;i<=m;i++)
{
for(j=1;j<=n;j++)
{
fin>>a[i][j];
}
}
}
else
{
for(i=1;i<=m;i++)
{
for(j=1;j<=n;j++)
{
fin>>a[j][i];
}
}
swap(m,n);
swap(r,c);
}
backtracking(1);
fout<<sol;
fin.close();
fout.close();
return 0;
}