Cod sursa(job #2342435)

Utilizator MirunaStefaniaLupascu Miruna-Stefania MirunaStefania Data 12 februarie 2019 20:06:50
Problema Jocul Flip Scor 40
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.95 kb
#include <bits/stdc++.h>
#define N 19
using namespace std;
ifstream fin("flip.in");
ofstream fout("flip.out");

int n,m;
int a[N][N],b[N][N];
long long s,smax;///suma pe matrice

bool l[N],c[N];///0-necomutat 1-comutat

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

void transformal(int k)
{int i;
 for(i=1;i<=m;++i)b[k][i]=-b[k][i];
}

void verifsuma()
{int i,j;
 long long suma=0;

 for(i=1;i<=n;++i)
    for(j=1;j<=m;++j)
    if((l[i]+c[j])%2==0)suma+=a[i][j];
    else suma+=-a[i][j];
 if(suma>smax)smax=suma;
}

void backc(int k)
{int i;
 for(i=0;i<=1;++i)
 {c[k]=i;
  if(k<m)backc(k+1);
  else verifsuma();
 }
}

void backl(int k)
{int i;
 for(i=0;i<=1;++i)
 {l[k]=i;
  //if(i==1)transformal(k);
  if(k<n)backl(k+1);
  else backc(1);
 }
}

int main()
{  int i,j;
   read();
   backl(1);
   fout<<smax;



     return 0;
}