Cod sursa(job #1785032)

Utilizator ionuttiplea2001Tiplea Ionut ionuttiplea2001 Data 20 octombrie 2016 20:16:54
Problema Jocul Flip Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.32 kb
#include <iostream>
#include <fstream>
#define Nmax 17
using namespace std;
int a[Nmax][Nmax] ;
int n , m ;
ifstream f("flip.in") ;
ofstream g("flip.out") ;
void com_lin(int b)
{
    for ( int j = 1 ; j <= m ; j ++ )
        a[b][j] = -a[b][j] ;
}
void com_col(int b)
{
    for ( int i = 1 ; i <= n ; i ++ )
        a[i][b] = - a[i][b] ;
}
void lin()
{
    for ( int i = 1 ; i <= n ; i ++ )
        {  int s = 0 ;
         for ( int j = 1 ; j <= m ; j ++ )
          s = s + a[i][j] ;
         if ( s < 0  )
         {
             com_lin(i) ;
         }
        }
}
void col()
{
        for ( int j = 1 ; j <= m ; j ++ )
        { int s = 0 ;
            for ( int i = 1 ; i <= n ; i ++ )
                s = s + a[i][j] ;
            if ( s < 0 )
                com_col(j) ;
        }
}

int suma_max(int sm )
{  lin() ; col() ;
    int s = 0 ;
    for ( int i = 1 ; i <= n ; i ++ )
        for ( int j = 1 ; j <= m ; j ++ )
          s = s + a[i][j] ;
    if ( s > sm )
    {
        sm = s ;
        suma_max(sm) ;
    }
    else
        return sm ;
}

int b = 0 , mins = 0  ;
int main()
{
    f >> n >> m ;
    for ( int i = 1 ; i <= n ; i ++ )
        for ( int j = 1 ; j <= m ; j ++ )
        f >> a[i][j] ;
      int sm = 0 ;

          g <<  suma_max(sm) ; ;

    return 0;
}