Cod sursa(job #1524413)

Utilizator Eugen_VlasieFMI Vlasie Eugen Eugen_Vlasie Data 14 noiembrie 2015 01:00:58
Problema Jocul Flip Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.21 kb
#include <fstream>

using namespace std;
ifstream f("flip.in");
ofstream g("flip.out");
int ma=0,n,nj,mj,st[100],s,m,mat[20][20];
int modul(int nr)
{
    if(nr<0)
        return nr*(-1);
    else
        return nr;
}
void bkt(int k)
{
    int suml=0,sum=0;
    int i,j,mati[20][20];
    for(i=1;i<=n;i++)
        for(j=1;j<=m;j++)
            mati[i][j]=mat[i][j];
    for(i=1;i<k;i++)
    {
        for(j=1;j<=m;j++)
        {
            mati[st[i]][j]=mati[st[i]][j]*(-1);
        }
    }
    for(i=1;i<=m;i++)
    {
        suml=0;
        for(j=1;j<=n;j++)
        {
            suml+=mati[j][i];
        }
        sum+=modul(suml);
    }
    if(sum>ma)
        ma=sum;
    if(k<=n)
    {
        for(i=st[k-1]+1;i<=n;i++)
        {
            st[k++]=i;
            bkt(k+1);
            k--;
        }
    }
}
void afisare()
{
    int i,j;
    for(i=1;i<=n;i++)
    {
        for(j=1;j<=m;j++)
            g<<mat[i][j]<<" ";
        g<<'\n';
    }
    g<<'\n';
}
int main()
{
    f>>n>>m;
    int i,j;
    for(i=1;i<=n;i++)
    {
        for(j=1;j<=m;j++)
        {
            f>>mat[i][j];
        }
    }
    bkt(1);
    g<<ma<<'\n';
    return 0;
}