Cod sursa(job #2620989)

Utilizator Simon2712Simon Slanina Simon2712 Data 30 mai 2020 10:28:16
Problema Jocul Flip Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.14 kb
#include <fstream>

using namespace std;
ifstream cin("flip.in");
ofstream cout("flip.out");
int a[17][17],v[17];
int main()
{
    int n,m,i,j,p=1,s=0,s2,maxi=-1,s3,cop,poz,nr,ind;
    cin>>n>>m;
    for(i=1;i<=n;i++)
    for(j=1;j<=m;j++){
        cin>>a[i][j];
        s+=a[i][j];
    }
    for(j=1;j<=m;j++)
        p*=2;
    for(i=0;i<p;i++)
    {
        cop=i;
        poz=nr=0;
        while(cop)
        {
            poz++;
            if(cop%2==1)
            {
                nr++;
                v[nr]=poz;
            }
            cop/=2;
        }
        s2=s;
        for(ind=1;ind<=n;ind++)
        {
            for(j=1;j<=nr;j++)
            {
               s2-=2*(a[ind][v[j]]);
               a[ind][v[j]]*=-1;
            }
        }
        for(ind=1;ind<=n;ind++)
        {
          s3=0;
          for(j=1;j<=m;j++)
            s3+=a[ind][j];
          if(s3<0)
            s2-=s3*2;
        }
        if(s2>maxi)
          maxi=s2;
        for(ind=1;ind<=n;ind++)
        {
          for(j=1;j<=nr;j++)
            a[ind][v[j]]*=-1;
        }
    }
    cout<<maxi;
    return 0;
}