Cod sursa(job #2463584)

Utilizator CosminMorarMorar Cosmin Andrei CosminMorar Data 28 septembrie 2019 12:18:08
Problema Jocul Flip Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.06 kb
#include <iostream>
#include <fstream>
#include <cmath>
#include <bits/stdc++.h>
using namespace std;
ifstream f("flip.in");
ofstream g("flip.out");
#define MAX_SIZE 17
int n, m, i, j, k;
int table[MAX_SIZE][MAX_SIZE];
int summax, suma, s1, s2;
bool flip[MAX_SIZE];

void GetSum() {
    suma = 0;
    for(i = 1; i <= n; i++) {
        s1 = 0;
        s2 = 0;
        for(j = 1; j <= m; j++) {
            if(flip[j]) {
                s1 += table[i][j];
                s2 -= table[i][j];
            } else {
                s1 -= table[i][j];
                s2 += table[i][j];
            }
        }
        suma += max(s1, s2);
    }
    summax = max(summax, suma);
}


void bck(int k) {
    if(k == m+1) {
        GetSum();
        return;
    }
    flip[k] = 1;
    bck(k+1);
    flip[k] = 0;
    bck(k+1);
}


int main()
{
    f >> n >> m;
    for(i = 1; i <= n; i++) {
        for(j = 1; j <= m; j++) {
            f >> table[i][j];
        }
    }

    summax = INT_MIN;
    bck(1);
    g << summax;
    return 0;
}