Cod sursa(job #2255572)

Utilizator mihaimodiMihai Modi mihaimodi Data 7 octombrie 2018 11:51:18
Problema Elimin Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.17 kb
#include <fstream>
#include <cstring>
#include <algorithm>

using namespace std;

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

int a[3651][17];
int sub[3651];
int n,m,col,lin,i,j,smax,k,p,q;
bool fr[16];

int main()
{
    fin>>n>>m>>lin>>col;
    if(m>n)
    {

        for(i=1;i<=n;i++)
            for(j=1;j<=m;j++)
                fin>>a[j][i];
        swap(m,n);
        swap(col,lin);

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




    for(i=0;i<(1<<m);i++)
    {
        memset(fr,0,sizeof(fr));
        k=0;

        for(j=0;j<m;j++)
        {
            if(((i>>j)&1)==1)
                fr[j+1]=1,k++;

        }

        if(k==col)
            {
            for(p=1;p<=n;p++)
            {
                sub[p]=0;
                for(q=1;q<=m;q++)
                {
                    if(fr[q]!=1)
                        sub[p]+=a[p][q];
                }
            }
        sort(sub+1,sub+n+1);
        int s=0;
        for(j=lin+1;j<=n;j++)
              s+=sub[j];
        smax=max(s,smax);

        }
    }
    fout<<smax;
  return 0;
}