Cod sursa(job #1168089)

Utilizator robertkarolRobert Szarvas robertkarol Data 6 aprilie 2014 21:53:09
Problema Jocul Flip Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.18 kb
#include<stdio.h>
FILE *f , *g ;
int n  , m , st[17] , k , si , s  ;
long a[17][17] , smax = -1000001 ;

void citire();
void flip(int k );
void tipar();

int main()
{
    citire();
    flip(1);
    tipar();
    return 0;
}

void citire()
{
    f=fopen("flip.in" , "r" );
    fscanf(f ,"%d%d" , &n , &m );
    for ( int i  =1 ; i<= n ; ++i )
        for ( int j  =1 ; j<= m ; ++j )
            fscanf(f , "%ld" , &a[i][j] );
        fclose(f);
}

void flip(int k )
{
    for ( int q = 0 ; q<= 1 ; ++q )
    {
        st[k]  = q;
        if(k == m )
        {
            s = 0;
            for ( int i = 1 ; i <= n ; ++i)
            {
                si = 0;
                for( int j = 1 ; j<=  m; ++j )
                    if(!st[j])
                        si+=a[i][j];
                    else
                        si+=-a[i][j];
                if(-si > si )
                    si = -si ;
                s+= si ;
            }
            if(s > smax )
                smax = s ;
        }
        else
                flip(k+1);
    }
}

void tipar()
{
    g=fopen("flip.out" , "w" );
    fprintf(g ,"%ld" , smax );
    fclose(g);
}