Cod sursa(job #2640469)

Utilizator Anastasia_StefanescuAnastasia Stefanescu Anastasia_Stefanescu Data 6 august 2020 16:06:47
Problema Jocul Flip Scor 20
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.09 kb
#include <fstream>
#include <iostream>
#include <string.h>
using namespace std;

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

int s_lin[17], s_col[17];
int n, m, S, S_max, S0, v[17][17];
int main()
{
    int i, j, l, c;
    fin >> n >> m;
    for(i = 1; i<=n; i++)
        for(j = 1; j<= m; j++)
        {
            fin >> v[i][j];
            S0 += v[i][j];
            s_lin[i] += v[i][j];
            s_col[j] += v[i][j];
        }
    S_max = S0;
    for (i = 0; i <= (1 << n); i++)
        for (j = 0; (1 << j) <= i; j++)
        {
            S = S0;
            for (l = 0; l<= n-1; l++)
                if(((i >> l) & 1) > 0)
                    S -= 2 * s_lin[l+1];

            for (c = 0; c <= m-1; c++)
            {
                if(((j >> c) & 1) > 0)
                {
                    S -= 2 * s_col[c+1];
                    for (l = 0; l<= n-1; l++)
                        if(((i >> l) & 1) > 0)
                            S+= 4*v[l+1][c+1];
                }
            }
            if(S > S_max)
                S_max = S;
        }
    
    fout << S_max;
    return 0;
}