Cod sursa(job #2023294)

Utilizator refugiatBoni Daniel Stefan refugiat Data 18 septembrie 2017 18:24:13
Problema Elimin Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.16 kb
#include <iostream>
#include <fstream>
#include <algorithm>
#include <cstring>
using namespace std;
ifstream si("elimin.in");
ofstream so("elimin.out");
int a[20][1005],s[1005];
int main()
{
    int n,m,r,c;
    si>>n>>m>>r>>c;
    int smax=0;
    if(n<=m)
    {
        for(int i=1;i<=n;i++)
            for(int j=1;j<=m;j++)
                si>>a[i][j];
    }
    else
    {
        int aux=n;
        n=m;
        m=aux;
        aux=r;
        r=c;
        c=aux;
        for(int j=1;j<=m;j++)
            for(int i=1;i<=n;i++)
                si>>a[n-i+1][j];
    }
    for(int k=0;k<(1<<n);k++)
    {
        int j=1,i=0;
        while(j<=k)
        {
            if(k&j)
                i++;
            j<<=1;
        }
        if(i!=r)
            continue;
        memset(s,0,sizeof(s));
        int aux=1;
        for(i=1;i<=n;i++,aux<<=1)
            if(!(k&aux))
                for(j=1;j<=m;j++)
                    s[j]+=a[i][j];
        sort(s+1,s+m+1);
        int sum=0;
        for(i=c+1;i<=m;i++)
            sum=sum+s[i];
        if(sum>smax)
            smax=sum;
    }
    so<<smax<<'\n';
    return 0;
}