Cod sursa(job #1725569)

Utilizator kirirato16opria ionut bogdan kirirato16 Data 5 iulie 2016 21:56:44
Problema Jocul Flip Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.88 kb
#include <iostream>
#include <fstream>
using namespace std;

short m;
long a[100][17], n;
static long long b = 0;

void Citire();
void backtracking(long k);

int main()
{
    Citire();
    backtracking(1);

    ofstream out("flip.out");
    out<<b;
    return 0;
}

void backtracking(long k)
{
    long long sum=0;

    for(long i=1; i<=n; i++)
        for(short j=1; j<=m; j++)
            sum += a[i][j];

    if(sum > b)
        b = sum;

    if(k <= m)
    {
        for(long i=1; i<=n; i++)
            a[i][k] = -a[i][k];
        backtracking(k+1);
    }
    if(k <= n)
    {
        for(short j=1; j<=m; j++)
            a[k][j] = -a[k][j];
        backtracking(k+1);
    }
}

void Citire()
{
    ifstream in("flip.in");
    in>>n>>m;
    for(long i=1; i<=n; i++)
        for(short j=1; j<=m; j++)
            in>>a[i][j];
    in.close();
}