Cod sursa(job #1571451)

Utilizator claudiuarseneClaudiu Arsene claudiuarsene Data 18 ianuarie 2016 09:27:36
Problema Jocul Flip Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.91 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("flip.in");
ofstream fout("flip.out");
int n, m, top, i, j, suml, s, maxx, a[19][19];
bool conf[20];

void backk(int k)
{   if(k==n+1)//ne folosim de configuratie, mergem pe linii
    {   s=0;
        for(int j=0;j<m;j++)
        {   suml=0;
            for(int i=0;i<n;i++ )
                if(conf[i]==1)//daca e pornit comutatorul
                    suml=suml+(-1)*a[i][j];
                else suml=suml+a[i][j];
            s=s+max(suml,-suml);
        }
        maxx=max(maxx,s);

        return;
    }
    conf[k]=0;
    backk(k+1);
    conf[k]=1;//marcam comutatorul pornit
    backk(k+1);
}
int main()
{
    fin>>n>>m;
    for(i=0;i<n;i++)
        for(j=0;j<m;j++)
        {   fin>>a[i][j];
            maxx=maxx+a[i][j]; //retinem suma initiala a matricii
        }
    backk(1);
    fout<<maxx;
    return 0;
}