Cod sursa(job #2255543)

Utilizator Anakin1001George Giorgiu Gica Anakin1001 Data 7 octombrie 2018 11:32:22
Problema Elimin Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.11 kb
#include <fstream>
#include <cstring>
#include <algorithm>
using namespace std;
ifstream f("elimin.in");
ofstream g("elimin.out");
int i,j,x,y,R,C,n,m,a[3650][16],v[3650],maxi,nr,k,S;
bool sub[16];
int main()
{   f>>n>>m>>R>>C;
    if(m>n){
        for(i=1;i<=n;i++)
            for(j=1;j<=m;j++)
                f>>a[j][i];
        swap(n,m);swap(R,C);
    }
    else{
        for(i=1;i<=n;i++)
            for(j=1;j<=m;j++)
                f>>a[i][j];
    }
    maxi=0;
    for(i=0;i<=(1<<m)-1;i++){
        memset(sub,0,sizeof(sub));
        k=0;
        for(j=0;j<m;j++){
            if(((i>>j)&1)==1){
                sub[j+1]=1;
                k++;
            }
        }
        if(k==C){
            for(x=1;x<=n;x++){
                S=0;
                for(y=1;y<=m;y++){
                    S+=a[x][y]*(1-sub[y]);
                }
                v[x]=S;
            }
            sort(v+1,v+n+1);
            nr=0;
            for(x=R+1;x<=n;x++)
                nr+=v[x];
            if(maxi<nr)
                maxi=nr;
        }
    }
    g<<maxi;
    return 0;
}