Cod sursa(job #2398607)

Utilizator elenaisaiaElena Isaia elenaisaia Data 5 aprilie 2019 19:37:44
Problema Elimin Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.18 kb
#include <iostream>
#include <fstream>
#include <algorithm>

using namespace std;

int a[16][526],n,m,r,c,sol,v[526];
bool viz[526];

void schimb(int &lin,int &col)
{
    int aux=lin;
    lin=col;
    col=aux;
}

void citire()
{
    ifstream fin("elimin.in");
    fin>>n>>m>>r>>c;
    if(n>m)
    {
        schimb(n,m);
        schimb(r,c);
        for(int j=0;j<m;j++)
            for(int i=0;i<n;i++)
                fin>>a[i][j];
    }
    for(int i=0;i<n;i++)
        for(int j=0;j<m;j++)
            fin>>a[i][j];
}

int f1()
{
    int ceva=0;
    for(int i=0;i<m;i++)
        v[i]=0;
    for(int i=0;i<n;i++)
        if(!viz[i])
            for(int j=0;j<m;j++)
                v[j]+=a[i][j];
    sort(v,v+m);
    for(int i=c;i<m;i++)
        ceva+=v[i];
    return ceva;
}

void backk(int lin,int col)
{
    if(lin==r)
    {
        int ceva=f1();
        sol=(sol>ceva)*(sol-ceva)+ceva;
        return;
    }
    for(int i=col;i<n;i++)
    {
        viz[i]=true;
        backk(lin+1,i+1);
        viz[i]=false;
    }
}

int main()
{
    citire();
    backk(0,0);
    ofstream fout("elimin.out");
    fout<<sol;
    return 0;
}