Cod sursa(job #2439054)

Utilizator radu.damianDamian Radu radu.damian Data 14 iulie 2019 18:38:02
Problema Jocul Flip Scor 40
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.12 kb
#include <fstream>

using namespace std;
ifstream fin("flip.in");
ofstream fout("flip.out");
int n,m,mat[20][20],opus,sume_coloane,nr,MAX,sum=0,i,maxi,j,mat1[20][20];
int suma_matrice(int mat[20][20])
{
    int i,j,s=0;
    for(i=1;i<=n;i++)
        for(j=1;j<=m;j++)
        s+=mat[i][j];
    return s;
}
void copiere_matrice(int mat[20][20],int mat1[20][20])
{
    int i,j;
    for(i=1;i<=n;i++)
        for(j=1;j<=m;j++)
         mat[i][j]=mat1[i][j];
}
int main()
{
    fin>>n>>m;
    for(i=1;i<=n;i++)
        for(j=1;j<=m;j++)
        {
        fin>>mat[i][j];
        mat1[i][j]=mat[i][j];
        }

    MAX= 1 << (n+m);
    while(nr<MAX)
    {
      sum=0;
      for(i=0;i<n+m;i++)
        if(nr & (1 << i))
        {
           if(i+1<=n)
            for(j=1;j<=m;j++)
             mat1[i+1][j]*=(-1);
           else
            for(j=1;j<=n;j++)
              mat1[j][i+1-n]*=(-1);
        }
      sum=suma_matrice(mat1);
      if(nr==0) maxi=sum;
      else if(sum>maxi)
        maxi=sum;
      nr++;
      copiere_matrice(mat1,mat);
    }
    fout<<maxi<<'\n';

    return 0;
}