Cod sursa(job #1523710)

Utilizator Eugen_VlasieFMI Vlasie Eugen Eugen_Vlasie Data 13 noiembrie 2015 03:43:24
Problema Jocul Flip Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.09 kb
#include <fstream>

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