Mai intai trebuie sa te autentifici.

Cod sursa(job #2090967)

Utilizator eduardandrei20Nechifor Eduard Andrei eduardandrei20 Data 18 decembrie 2017 21:34:49
Problema Jocul Flip Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.24 kb
#include <bits/stdc++.h>
using namespace std;

int n , m , a[17][17];
int S ;
bool v[17];

void scan()
{
    freopen("flip.in","r",stdin);
     scanf("%d%d",&n,&m);
       for ( int i = 1; i <= n ; ++ i )
             for ( int j = 1; j <= m ; ++ j )
                    {scanf ("%d", &a[i][j]);
                       S += a[i][j];
                     }
}

void schimb (int p)
{

    for (int i = 1 ; i <= n ; ++i )
           a[i][p] = -a[i][p];

}

void ceva()
{ int k = 0 , s ;
    for ( int i = 1 ; i <= m ; ++ i )
    {
        if (v[i]) schimb(i);
    }

    for ( int i = 1 ; i <=n ; ++ i)
    {    s= 0 ;
         for ( int j = 1; j <=m ; ++ j )
                 s+=a[i][j];
         if(s>0) k+=s;
         else k-=s;
    }
    if(k>S)S=k;
     for ( int i = 1 ; i <= m ; ++ i )
    {
        if (v[i]) schimb(i);
    }

}



void af()
{
    for ( int i =1 ; i<= m ;++i)
        cout << v[i]<<" ";
              cout << endl ;
}

void back (int k )
{
    for ( int value = 0 ; value <= 1; ++value)
    {
        v[k]=value;if(k==m) ceva();
                     else  back(k+1);
    }
}





int main()
{
scan();
back(1);
freopen("flip.out","w",stdout);
printf("%d",S);
    return 0;
}