Cod sursa(job #2241037)

Utilizator filicriFilip Crisan filicri Data 14 septembrie 2018 17:37:11
Problema Jocul Flip Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.78 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("flip.in");
ofstream g("flip.out");

int coloana[17],mat[17][17],n,m,maxim,k;
void flip (int k)
{
    if (k==n+1)
    {
        int total=0;
        for (int i=1;i<=m;i++)
            if (coloana[i]>0) total+=coloana[i];
            else total-=coloana[i];
        if (maxim<total) maxim=total;
        return;
    }
    flip(k+1);
    for (int i=1;i<=m;i++) coloana[i]-=2*mat[k][i];
    flip(k+1);
    for (int i=1;i<=m;i++) coloana[i]+=2*mat[k][i];
}
int main()
{
    f>>n>>m;
    for (int i=1;i<=n;i++)
        for (int j=1;j<=m;j++)
        {
            f>>mat[i][j];
            coloana[j]+=mat[i][j];
        }
    flip(1);
    g<<maxim;
    f.close();
    g.close();
    return 0;
}