Cod sursa(job #2079423)

Utilizator Marina23Oprea Marina Marina23 Data 1 decembrie 2017 12:39:17
Problema Elimin Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.03 kb
#include <fstream>
#include <algorithm>

using namespace std;

int N,M,R,C,i,j,Sol[950],Lin[950],Maxi,Total;
short int A[950][950];
bool Coloane[950];

void backtrack(int Nivel)
{
    int i,j,k;

    if(Nivel==C+1)
    {
        for(j=1;j<=M;j++)
        {
            Lin[j]=0;
            for(k=1;k<=N;k++)
                if(Coloane[k]==0)
                    Lin[j]+=A[j][k];
        }//for j
        sort(Lin+1,Lin+M+1);
        Total=0;
        for(j=R+1;j<=M;j++)
            Total+=Lin[j];
        if(Total>Maxi)
            Maxi=Total;
    }//if
    else
        for(i=Sol[Nivel-1]+1;i<=N;i++)
        {
            Sol[Nivel]=1;
            Coloane[i]=1;
            backtrack(Nivel+1);
            Coloane[i]=0;
        }//else
}

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

    fin>>M>>N>>R>>C;
    for(i=1;i<=M;i++)
        for(j=1;j<=N;j++)
            fin>>A[i][j];
    backtrack(1);
    fout<<Maxi;

    fin.close ();
    fout.close();
    return 0;
}