Cod sursa(job #3238301)

Utilizator kazakmihaimihai rata kazakmihai Data 23 iulie 2024 21:22:20
Problema Jocul Flip Scor 10
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.49 kb
#include <iostream>
#include <fstream>
using namespace std;

ifstream fin("flip.in");
ofstream fout("flip.out");

int v[16][16], n, m, i, j, maxi = 0;

int sumaa()
{
    int s = 0;
    for (int i = 0; i < n; i++)
        for (int j = 0; j < m; j++)
            s += v[i][j];

    return s;
}

void modif(int i, int j)
{
    for (int k = 0; k < n; k++)
        if (k != i)
            v[k][j] *= -1;
    for (int k = 0; k < m; k++)
        if (k != j)
            v[i][k] *= -1;
}

void linie(int i)
{
    for (int k = 0; k < m; k++)
        v[i][k] *= -1;
}

void coloana(int j)
{
    for (int k = 0; k < n; k++)
        v[k][j] *= -1;
}

void bkt(int i, int j)
{
    if (i == n)
    {
        int a = sumaa();
        if (maxi < a)
            maxi = a;
    }
    else
    {
        for (int k = 1; k <= 4; k++)
        {

            switch(k)
            {
            case 1:
                break;
            case 2:
                linie(i);
                break;
            case 3:
                linie(i);
                coloana(j);
                break;
            case 4:
                linie(i);
            }

            if (j == m - 1)
                bkt(i + 1, 1);
            else
                bkt(i, j + 1);
        }
    }
}

int main()
{
    fin >> n >> m;

    for (int i = 0; i < n; i++)
        for (int j = 0; j < m; j++)
            fin >> v[i][j];

    bkt(0, 0);

    fout << maxi;

    return 0;
}