Cod sursa(job #1843153)

Utilizator pibogaBogdan piboga Data 8 ianuarie 2017 12:04:12
Problema Elimin Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.44 kb
#include <fstream>
#include <algorithm>

using namespace std;

ifstream fin ("elimin.in");
ofstream fout("elimin.out");

int n,m,r,c,N,M,u,k,mx,i,j,nr,s,ss;
int mk[7500],t[7500],a[20][7500];

//a[15][7294]

int main()
{
    fin >> n >> m >> r >> c ;


    if (n>m)
    {
        for (j=1;j<=n;++j)
        {
            for (i=1;i<=m;++i)
            {
                fin >>a[i][j];
            }
        }

        swap (n,m);
        swap (r,c);
    }

    else

    {
        for (i=1;i<=n;++i)
        {
            for (j=1;j<=m;++j)
            {
                fin >> a[i][j];
            }
        }


    }

    nr=(1<<n)-1;

    for (k=1;k<=nr;++k)
    {
        u=0;
        for (i=1;i<=n;++i)
        {
            if (k>>(i-1) & 1)
            {
                u += (( k >> (i-1) & 1)!=0);
            }
        }

        ss=0;

        if (u==r)
        {
            for (i=1;i<=n;++i)
            {
                if  (!( k & 1<<(i-1) ))
                {
                    for (j=1;j<=m;++j)
                    {
                        t[j]+=a[i][j];
                    }
                }
            }



            sort (t+1,t+m+1);

            for (j=m;j>=c+1;--j)
            {
                ss+=t[j];
            }

            for (j=1;j<=m;++j) t[j]=0;

            if (ss>mx) mx=ss;


        }
    }




    fout <<mx;

    return 0;
}