Pagini recente » Istoria paginii runda/laborator_9a_azzi/clasament | Istoria paginii runda/preoni11/clasament | Istoria paginii runda/tt1/clasament | Istoria paginii runda/nimi | Cod sursa (job #1288274)
#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>>c>>r;
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;
}