Cod sursa(job #2893572)

Utilizator ioana001Dragomir Ioana Andreea ioana001 Data 26 aprilie 2022 12:29:57
Problema Jocul Flip Scor 30
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.5 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("flip.in");
ofstream g("flip.out");
 int n,m,x[1000],a[100][100]={1},p[1000][1000],k,k2,x2[1000],l,smax=-45555;
 void matrice()
 { int i,j,s=0;
     for(i=1;i<=n;i++)
        for(j=1;j<=m;j++)
          if(x2[i]==1)
            a[i][j]=a[i][j];
         else a[i][j]=-a[i][j];

         for(i=1;i<=n;i++)
       {for(j=1;j<=m;j++)
            //cout<<a[i][j]*p[i][j]<<" ",
            s=s+a[i][j]*p[i][j];
           // cout<<endl;
           }
            if(s>smax)
                smax=s;
 //cout<< endl;
 }
void back2()
  {
     k2=1; x2[k2]=0;
     while(k2>0)
        if(x2[k2]<2)
     {
         x2[k2]++;
      if(k2==n)
            { matrice();

            }
         else {k2++;
              x2[k2]=0;}
    } else k2--;
 }
 void linie()
 {   int i,j;
    for (i=1;i<=n;i++)
        for(j=1;j<=m;j++)
         {if(x[j]==1)
          a[i][j]=1;
           else a[i][j]=-1;

         }
back2();
 }
void back()
 {
     k=1;x[k]=0;
     while(k>0)
        if(x[k]<2)
     {
         x[k]++;
         if(k==m)
            {
               // for(l=1;l<=m;l++)
                //    cout<< x[l]<<" ";
                //    cout<<endl;
                    linie();
           }
         else {k++;
              x[k]=0;}
     }
     else k--;

 }
int main()
{  int i,j;
   f>>n>>m;
   for(i=1;i<=n;i++)
    for(j=1;j<=m;j++)
    f>>p[i][j];

   back();
   g<<smax;
    return 0;
}