Cod sursa(job #992398)

Utilizator AeroHHorea Stefan AeroH Data 1 septembrie 2013 19:08:16
Problema Elimin Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.04 kb
#include <fstream>
#include <algorithm>
using namespace std;
ifstream f("elimin.in");
ofstream g("elimin.out");
short int m[20][550],i,j,n,l,c,k,lt,ct,v[21];
int sums[550],mini[550],sum,rasp;
int verif()
{
    int sum=0;
    for (int i=1;i<=l;++i)
    for (int j=1;j<=c;++j)
    if  (!v[i])
    {
    sums[j]+=m[i][j];
    }
    else break;

    sort (sums+1,sums+c+1);
    /*for (int i=1;i<=c;++i)
    g<<sums[i];*/

    for (int i=c;i>ct;--i)
    sum+=sums[i];

    for (int i=1;i<=c;++i)
    sums[i]=0;
    return sum;
}

int main()
{
    f>>l>>c>>lt>>ct;
    /*if (c>l)
    l^=c,c^=l,l^=c,lt^=ct,ct^=lt,lt^=ct;*/
    if (l<=c)
    for (i=1;i<=l;++i)
    for (j=1;j<=c;++j)
    f>>m[i][j];
    else
    {
    for (i=1;i<=l;++i)
    for (j=1;j<=c;++j)
    f>>m[j][i];
    l^=c,c^=l,l^=c,lt^=ct,ct^=lt,lt^=ct;
    }
    for (i=1;i<=lt;++i)v[i]=1;

    do
    {
            sum=verif();
        if (sum>rasp)
            rasp=sum;
    }while(prev_permutation(v+1,v+l+1));

    g<<rasp;
    return 0;
}