Cod sursa(job #2853294)

Utilizator TLG285Mihai Tudoroiu TLG285 Data 20 februarie 2022 10:17:47
Problema Jocul Flip Scor 0
Compilator cpp-64 Status done
Runda Teme Pregatire ACM Unibuc 2014, Anul II Marime 1.82 kb
#include<bits/stdc++.h>
using namespace std;
ifstream fin("flip.in");
ofstream fout("flip.out");

int m,n;
int v[100];
int A[100][100];
int s_l=0,s_c=0;
int q=0;
void citire()
{
    for(int i=1; i<=n; ++i)
        for (int j=1; j<=m; ++j)
        {
            fin>>A[i][j];

        }


}
void mod_linie(int q)
{
    q=q-1;
    for(int i=1; i<=m; i++)
    {
        A[q][i]=-A[q][i];

    }

}
void mod_coloana(int q)
{
    q=q-1;
    for(int i=1; i<=n; i++)
    {
        A[i][q]=-A[i][q];
    }



}
void afisare()
{
    int i,j;
    i=v[1];
    j=v[2];
    s_l=s_l+A[i][j];
    s_c=s_c+A[j][i];
    if(i==n&&j==n)
    {

        if(s_l<0)
        {
            mod_linie(q);
        }
        if(s_c<0)
        {
            mod_coloana(q);
        }
        s_l=0,s_c=0;
    }


}
bool ok(int k)
{
    for(int i=1; i<k; i++)

        return true;


}
bool sol(int k)
{
    return k==2;

}
void bkt(int k)
{

    for(int i=1; i<=n; ++i)
    {
        v[k]=i;
        if(ok(k))
        {
            if(sol(k))
            {
                afisare();

            }
            else
            {
                q++;
                if(1<q)
                {

                    if(s_l<0)
                    {
                        mod_linie(q);
                    }
                    if(s_c<0)
                    {
                        mod_coloana(q);
                    }
                    s_l=0,s_c=0;
                }

                bkt(k+1);
            }

        }


    }


}

int main()
{
    fin>>n>>m;
    citire();
    bkt(1);
    int S=0;
    for(int i=1; i<=n; ++i)
    {
        for (int j=1; j<=m; ++j)
        {
            S=S+A[i][j];

        }

    }
    fout<<S;
    return 0;
}