Cod sursa(job #3219529)

Utilizator Dia3141Costea Diana Stefania Dia3141 Data 31 martie 2024 16:32:10
Problema Elimin Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.22 kb
#include <fstream>
#include <algorithm>
using namespace std;
ifstream cin("elimin.in");
ofstream cout("elimin.out");
int n,m,L,C,a[7300][7300];
bool frl[7300];
long long Max,sum,sc[7300],total;
long long sol(){
    long long s=0;
    for(int i=1;i<=m;i++)
        sc[i]=0;
    for(int i=1;i<=n;i++)
        if(!frl[i])
            for(int j=1;j<=m;j++){
                sc[j]+=a[i][j];
                s+=a[i][j];
            }
    sort(sc+1,sc+m+1);
    for(int j=1;j<=C;j++)
        s-=sc[j];
    return s;
}
void lini(int k,int last){
    if(k==L+1){
        int s=sol();
        if(s>Max)
            Max=s;
    }else{
        for(int i=last+1;i<=n;i++){
            frl[i]=1;
            lini(k+1,i);
            frl[i]=0;
        }
    }
}
int main()
{
    cin>>n>>m>>L>>C;
    if(n<=m){
        for(int i=1;i<=n;i++)
            for(int j=1;j<=m;j++)
                cin>>a[i][j];
    }else{
        swap(n,m),swap(L,C);
        for(int i=1;i<=m;i++)
            for(int j=1;j<=n;j++)
                cin>>a[j][i];
    }
    /*for(int i=1;i<=n;i++){
        for(int j=1;j<=m;j++)
            cout<<a[i][j]<<" ";
        cout<<'\n';
    }*/
    lini(1,0);
    cout<<Max;
    return 0;
}