Cod sursa(job #49708)

Utilizator DastasIonescu Vlad Dastas Data 6 aprilie 2007 11:40:01
Problema Elimin Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.09 kb
#include <stdio.h>
#include <iostream>

FILE *in = fopen("elimin.in","r"), *out = fopen("elimin.out","w");

int n, m, r, c;
short a[100][100];
short eliminate[100] = {0};

int s = 0;

void read()
{
    fscanf(in, "%d %d %d %d", &m, &n, &r, &c);

    for ( int i = 1; i <= m; ++i )
        for ( int j = 1; j <= n; ++j )
            fscanf(in, "%d" , &a[i][j]);
}

void suma()
{
    int t = 0;

    for ( int i = 1; i <= m; ++i )
        for ( int j = 1; j <= n; ++j )
            if ( eliminate[j] == 0 )
                t += a[i][j];

    if ( t > s )
        s = t;

    for ( int i = 1; i <= n; ++i )
        eliminate[i] = 0;
}

short st[100];

void back(int col)
{
    for ( int i = st[col-1]+1; i <= n; ++i )
    {
        st[col] = i;
        if ( col == c )
        {
            for ( int t = 1; t <= c; ++t )
                eliminate[st[t]] = 1;

            suma();
        }
        else
            back(col+1);
    }
}

int main()
{
    read();
    memset(st, 0, sizeof(st));
    back(1);

    fprintf(stdout, "%d\n", s);

	return 0;
}