Pagini recente » Cod sursa (job #1444420) | Istoria paginii utilizator/angel2ionita | Rating Andrei T (annost) | Istoria paginii runda/ytu/clasament | Cod sursa (job #1288273)
#include <fstream>
#include <algorithm>
#include <cstring>
using namespace std;
ifstream in("elimin.in");
ofstream out("elimin.out");
int a[7600][16],s[7600],bits[17];
int main()
{int i,n,m,r,c,j,bit,sum,mx=0,nb=0,mod;
in>>n>>m>>r>>c;
if(m>n)
{
for(i=0;i<n;i++)
for(j=0;j<m;j++)
in>>a[j][i];
swap(n,m);
swap(r,c);
}
else
{
for(i=0;i<n;i++)
for(j=0;j<m;j++)
in>>a[i][j];
}
for(mod=0;mod<(1<<m);mod++)
{
memset(bits,0,sizeof(bits));
nb=0;
sum=0;
for(i=1;i<m;i++)
{
if(mod&(1<<i))
{
bits[i]=1;
nb++;
}
}
if(nb==c)
{
memset(s,0,sizeof(s));
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
{
if(!bits[j])
{
s[i]+=a[i][j];
}
}
}
sort(s,s+n);
for(i=r;i<n;i++)
sum+=s[i];
mx=max(mx,sum);
}
}
out<<mx<<'\n';
return 0;
}