Cod sursa(job #2136386)

Utilizator VladAfrasineiAfrasinei VladAfrasinei Data 19 februarie 2018 21:25:26
Problema Elimin Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.91 kb
#include <iostream>
#include <fstream>
#include <algorithm>
using namespace std;
ifstream fin("elimin.in");
ofstream fout("elimin.out");
int n,m,r,c;
int a[1050][20],x[20],maxi;
void suma()
{
    int viz[20]={0},l[1050]={0};
    int i,j;
    long long s=0;
for(i=1;i<=c;i++)
    viz[x[i]]=1;
for(i=1;i<=n;i++)
    for(j=1;j<=m;j++)
        if(viz[j]==0)
            l[i]+=a[i][j];
sort(l+1,l+n+1);
for(i=r+1;i<=n;i++)
    s+=l[i];
if(s>maxi)
    maxi=s;
}
void Back(int k)
{   int i,j;
    for(i=x[k-1]+1;i<=m;i++)
    {
        x[k]=i;
        if(k==c)
            suma();
        else
            Back(k+1);
    }
}
int main()
{   int i,j,k;
fin>>n>>m>>r>>c;
if(n>=m)
    for(i=1;i<=n;i++)
        for(j=1;j<=m;j++)
            fin>>a[i][j];
else
{for(i=1;i<=n;i++)
    for(j=1;j<=m;j++)
    fin>>a[j][i];
    swap(n,m);
    swap(r,c);
}
Back(1);
fout<<maxi;
    return 0;
}