Cod sursa(job #1843243)

Utilizator ceciliamariciucCecilia Mariciuc ceciliamariciuc Data 8 ianuarie 2017 14:48:13
Problema Jocul Flip Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.84 kb
#include <fstream>

using namespace std;

ifstream fin("flip.in");
ofstream fout("flip.out");

int n,m,a[17][17],x[17],smax;
int s[17];
//int viz[17];

void Citire()
{int i,j;
fin>>n>>m;
for(i=1;i<=n;i++)
    for(j=1;j<=m;j++)
         {fin>>a[i][j];
          smax=smax+a[i][j];
         }
}

int Calcul(int k)
{int i,j,y,sum;
y=x[k]; sum=0;
for(j=1;j<=m;j++) a[y][j]=-a[y][j];
for(j=1;j<=m;j++)
    for(i=1;i<=n;i++)
        s[j]=s[j]+a[i][j];
for(j=1;j<=m;j++)
    {if(s[j]<0) sum=sum-s[j];
     else sum=sum+s[j];
    }
return sum;
}

void Back(int k)
{int i,sum,j;
for(i=x[k-1]+1;i<=n;i++)
    {x[k]=i;
     for(j=1;j<=m;j++) s[j]=0;
     sum=Calcul(k);
    // fout<<sum<<"\n";
     if(sum>smax) smax=sum;
     if(x[k]<n) Back(k+1);
    }
}

int main()
{
Citire();
Back(1);
fout<<smax;
    return 0;
}