Cod sursa(job #1743736)

Utilizator stefanchistefan chiper stefanchi Data 18 august 2016 17:19:19
Problema Jocul Flip Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.39 kb
#include <stdio.h>
#include <bitset>
using namespace std;
int n,m;
int tabla[18][18];
int suma_linie[18];
int rezolv;

void read()
{
    freopen("flip.in","r",stdin);
    freopen("flip.out","w",stdout);
    scanf("%d %d",&n,&m);
    for(int i = 1 ; i <= n ; i++)
        {for(int j = 1 ; j <= m ; j++)
           {
               scanf("%d ",&tabla[i][j]);
               suma_linie[i] += tabla[i][j];
           }
           rezolv += suma_linie[i];
        }

}

void rezolvare()
{
     for(int verf = 0  ; verf < (1 << n) ; verf++)
     {
         int suma_tabla = 0;
         for(int i = 0 ; i < n ; i++)
         {
             if( verf & (1 << i))
                suma_tabla -= suma_linie[i+1];
                else
                    suma_tabla += suma_linie[i+1];
         }
         for(int j = 1 ; j <= m ; j++)
         {
             int suma_coloana = 0;
             for(int i = 0 ; i < n ; i++)
             {
                 if(verf & (1 << i))
                    suma_coloana -= tabla[i+1][j];
                else
                    suma_coloana += tabla[i+1][j];
             }
            if(suma_coloana < 0)
                    suma_tabla -= 2 * suma_coloana;
         }
        if(rezolv < suma_tabla);
            rezolv = suma_tabla;
     }
     printf("%d",rezolv);
}


int main()
{
    read();
    rezolvare();
    return 0;
}