Cod sursa(job #878693)

Utilizator basca11Lapustea Anca basca11 Data 14 februarie 2013 18:17:13
Problema Jocul Flip Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.89 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("flip.in");
ofstream g("flip.out");
int x[40],n,m,a[20][20],i,j,smax,b[20][20];
void copy()
{
for(i=1;i<=n;i++)
   for(j=1;j<=m;j++)
   b[i][j]=a[i][j];
}
void comp()
{long long x,y;
for(x=0;x<(1<<n);x++)
for(y=0;y<(1<<m);y++)
{
int s=0;
copy();
for(i=0;i<n;i++)
  if((x>>i)&1)
  for(j=1;j<=m;j++)
    b[i][j]=-b[i][j];
for(i=1;i<=m;i++)
  if((y>>i)&1)
  for(j=1;j<=n;j++)
    b[j][i]=-b[j][i];
for(i=1;i<=n;i++)
   for(j=1;j<=m;j++)
      s=s+b[i][j];
     if (s>smax)smax=s;
}}
void bt(int k)
{
for(int i=0;i<=1;i++)
{x[k]=i;
  if(k==n+m)
    comp();
    else bt(k+1);
}
}
int main()
{f>>n>>m;
 for(i=1;i<=n;i++)
  for(j=1;j<=m;j++)
    f>>a[i][j];
//for(i=0;i<(1<<16);i++){
 //for(j=0;j<16;j++)
  //cout<<((i>>j)&1);
  //cout<<endl;}
comp();

   g<<smax;
   g.close();
    return 0;
}