Cod sursa(job #3033603)

Utilizator Bianca2507Negret Bianca Bianca2507 Data 24 martie 2023 10:04:12
Problema Jocul Flip Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.88 kb
#include <fstream>
#include <climits>
using namespace std;
ifstream cin("flip.in");
ofstream cout("flip.out");
int a[20][20],i,j,n,m,k,elem,semn,x;
long long sum_lin[20],maxi,s,s1,sum_lin_act[20];
int main()
{
    cin>>n>>m;
    maxi=LLONG_MIN;
    for(i=1; i<=n; i++)
        for(j=1; j<=m; j++)
            cin>>a[i][j],sum_lin[i]+=a[i][j];
    for(k=0; k<=(1<<m)-1; k++)
    {

        for(i=1; i<=n; i++)
          sum_lin_act[i]=sum_lin[i];
        x=k;
        elem=0;
        s=0;
        while(x!=0)
        {
            elem++;
            if(x%2==1)
                for(i=1; i<=n; i++)
                    sum_lin_act[i]=sum_lin_act[i]-2*a[i][elem];
            x=x/2;

        }
        for(i=1; i<=n; i++)
        {
            if(sum_lin_act[i]<0)
            s-=sum_lin_act[i];
            else
                s+=sum_lin_act[i];
        }
       maxi=max(maxi,s);
    }
    cout<<maxi;
    return 0;
}
/*or(i=1; i<=n; i++)
        {
               suma_lin=0;
            for(j=1; j<=m; j++)
                suma_lin+=a[i][0]*a[i][j]*a[0][j];
                if(suma_lin<0)
                    suma_lin=-suma_lin;
                s=s+suma_lin;

        }
          maxi=max(s,maxi);
          for(j=1;j<=m;j++)
          {
              suma_col=0;
              for(i=1;i<=n;i++)
                suma_col+=a[0][j]*a[i][j]*a[i][0];
              if(suma_col<0)
                suma_col=-suma_col;
              s1=s1+suma_col;

          }
          maxi=max(s1,maxi);*/

///int x, y, elem, n, z;
/*cin>>n;
   for(int i=1;i<=n;i++)
   {
       cin>>elem;
       x = x | (1<<elem);
   }

   cin>>n;
   for(int i=1;i<=n;i++)
   {
       cin>>elem;
       y = y | (1<<elem);
   }

   z=x&y;//intersectia
   elem=0;
   while(z!=0)
   {
       if((z&1)!=0)
            cout<<elem<<" ";

       z =(z>>1);
       elem++;
   }*/