Cod sursa(job #2641705)

Utilizator PredescuSebastianIonPredescu Sebastian Ion PredescuSebastianIon Data 12 august 2020 14:18:01
Problema Elimin Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.05 kb
#include <bits/stdc++.h>

using namespace std;
ifstream f("elimin.in");
ofstream g("elimin.out");
int n,m,r,c,a[20][8005],s[8005],Max;
int b(int n)
{
    int cnt=0;
    while(n)
    {
        n&=n-1;
        cnt++;
    }
    return cnt;
}
int main()
{
    f>>n>>m>>r>>c;
    for(int i=0; i<n; i++)
    {
        for(int j=0; j<m; j++)
        {
            if(n<=m)f>>a[i][j];
            else f>>a[j][i];
        }
    }
    if(n>m)
    {
        swap(n,m);
        swap(r,c);
    }
    for(int val=0; val<(1<<n); val++)
    {
        if(b(val)!=r)continue;
        for(int j=0; j<m; j++)s[j]=0;
        for(int i=0; i<n; i++)
        {
            int bit=(val>>i)&1;
            if(bit==0)
            {
                for(int j=0; j<m; j++)
                {
                    s[j]+=a[i][j];
                }
            }
        }
        sort(s,s+m);
        int sum=0;
        for(int j=c; j<m; j++)
        {
            sum+=s[j];
        }
        if(sum>Max)Max=sum;
    }
    g<<Max;
    return 0;
}