Cod sursa(job #905709)

Utilizator DeclinGogonea Andrei Declin Data 6 martie 2013 08:40:41
Problema Jocul Flip Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.13 kb
#include <fstream>
 using namespace std;
ifstream f("flip.in");
ofstream g("flip.out");

int main ()
{
    int n,m,i,j,s,v[17],smax=0,p1,p2,a[17][17];
    f>>n>>m;
    for (i=1;i<=n;i++){
        for (j=1;j<=m;j++){
            f>>a[i][j];
        }
    }
    v[0]=0;
    for (i=1;i<=16;i++)v[i]=0;
    while (v[0]==0){
          s=0;
          for (i=1;i<=n;i++){
                  if (v[i]==0)
                     for (j=1;j<=m;j++)s=s+a[i][j];
                  else
                      for (j=1;j<=m;j++)s=s-a[i][j];
          }
          for (j=1;j<=m;j++){
              p1=0;
              for (i=1;i<=n;i++){
                  if (v[i]==0)p1+=a[i][j];
                  else p1-=a[i][j];
              }
              p2=0;
              for (i=1;i<=n;i++){
                  if (v[i]==0)p2-=a[i][j];
                  else p2+=a[i][j];
              }
              if (p2>p1)s=s+p2-p1;
          }
          if (s>smax)smax=s;
          v[n]++;
          for (i=n;i>=1;i--){
              if (v[i]>=2){v[i]=0;v[i-1]++;}
          }
    }
    g<<smax<<'\n';
f.close();
g.close();
return 0;
}