Cod sursa(job #1886602)

Utilizator dumitrescu_andreiDumitrescu Andrei dumitrescu_andrei Data 20 februarie 2017 23:34:11
Problema Jocul Flip Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.04 kb
#include <bits/stdc++.h>

using namespace std;
ifstream f("flip.in");
ofstream g("flip.out");
int a[17][17];
short n,m;
long long s,smin;

void citire()
{
    f>>n>>m;
    for(int i=1;i<=n;++i)
        for(int j=1;j<=m;++j)
        f>>a[i][j],s+=a[i][j];
    smin=s;
}

void verif(char q, short w)
{
    long long s=0;
    for(int i=1;i<=n;++i)
        for(int j=1;j<=m;++j)
          s+=a[i][j];
    if(s<smin)
    {
        if(q=='c')
            for(short i=1;i<=n;++i)
               a[i][w]*=-1;
        else
            for(short i=1;i<=m;++i)
               a[w][i]*=-1;
    }
    else
        smin=s;
}

void BKTR(char q, short i)
{

    if(q=='c' && i<=m)
    {
        for(short j=1;j<=n;++j)
            a[j][i]*=-1;
        verif(q,i);
        if(i<m) BKTR(q,i+1);
        else BKTR('r',1);
    }
    else if(q=='r' && i<=n)
    {
        for(short j=1;j<=m;++j)
            a[i][j]*=-1;
        verif(q,i);
         BKTR(q,i+1);
    }

}

int main()
{
citire();
BKTR('c',1);
g<<smin;

}