Cod sursa(job #2501796)

Utilizator sygAndreiIonitaIonita Andrei sygAndreiIonita Data 30 noiembrie 2019 11:09:23
Problema Jocul Flip Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1 kb
#include <fstream>

using namespace std;

bool lin[17],col[17];
int mat[17][17];

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

int main()
{
    int n,m,i,j,max1=0,c,sum,s;
    in>>n>>m;
    for (i=1;i<=n;i++)
        for (j=1;j<=m;j++)
            in>>mat[i][j],max1+=mat[i][j];
    sum=0;
    for (j=1;j<=m;j++)
    {
      s=0;
      for (i=1;i<=n;i++)
         s+=mat[i][j];
      if (s<0)
        sum+=-s;
      else
        sum+=s;
    }
    max1=max(max1,sum);
    for (i=1;i<(1<<n);i++)
    {
      for (j=1;j<=16;j++)
        lin[j]=0;
      for (j=1;j<=n;j++)
        if (i&(1<<(j-1)))
          lin[j]=1;
      sum=0;
      for (j=1;j<=m;j++)
      {
        s=0;
        for (c=1;c<=n;c++)
        {
          if (lin[c])
                s+=-1*mat[c][j];
          else
            s+=mat[c][j];
        }
        if (s<0)
            sum+=-s;
        else
            sum+=s;
      }
      max1=max(max1,sum);
    }
    out<<max1;
    return 0;
}