Cod sursa(job #1083544)

Utilizator tavi.belu1994FMI Belu Andrei Octavian tavi.belu1994 Data 16 ianuarie 2014 03:03:55
Problema Elimin Scor 60
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.97 kb
#include <cstdio>
#include <algorithm>
FILE *f,*g;
using namespace std;

int i,j,n,m,N,M,maxx,suma,s[600];
int ap[20],a[600][600];

void back (int k, int X)
{
    if (k > m+1) return;
    if (X == M)
    {
        int i,j;
        for (i=1; i<=n; ++i)
        {
            s[i]=0;
            for (j=1; j<=m; ++j)
            {
                if (ap[j]==0) s[i]+=a[i][j];
            }
        }
        sort(s+1,s+n+1);
        suma=0;
        for (i=N+1; i<=n; ++i)
            suma+=s[i];
        if (suma>maxx)
            maxx=suma;
    }
    else
    {
        ap[k]=1;
        back(k+1,X+1);
        ap[k]=0;
        back(k+1,X);
    }
}
int main ()
{
    f=fopen("elimin.in","r");
    g=fopen("elimin.out","w");
    fscanf(f,"%d%d%d%d",&n,&m,&N,&M);
    for (i=1; i<=n; ++i)
        for (j=1; j<=m; ++j)
            fscanf(f,"%d",&a[i][j]);
    back(1,0);
    fprintf(g,"%d",maxx);
    fclose(f);
    fclose(g);
    return 0;
}