Cod sursa(job #3134880)

Utilizator Mihai_AritonMihai Ariton Mihai_Ariton Data 31 mai 2023 18:00:46
Problema Jocul Flip Scor 80
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.42 kb
#include <bits/stdc++.h>
using namespace std;

int v[25][25], cop[25][25], x[25], sum[25], sum2[25];
int main()
{
    ifstream cin("flip.in");
    ofstream cout("flip.out");
    
    int n, m, nr, poz, s=0, maxnr=0, y=-1, t=0, t2=0, a;
    cin>>n>>m;
    for(int i=1; i<=n; i++)
    {
        for(int j=1; j<=m; j++)
        {
            cin>>v[i][j];
            cop[i][j]=v[i][j];
            sum[i]+=v[i][j];
            sum2[i]=sum2[i]+v[i][j]*y;
        }
    }
    nr=pow(2, n);
    for(int w=1; w<=nr; w++)
    {
        s=0;
        for(int i=1; i<=n; i++)
        {
            if(x[i]==1)
            s=s+sum2[i];
            else
            s=s+sum[i];
        }
        for(int j=1; j<=m; j++)
        {
            t=0;t2=0;
            for(int i=1; i<=n; i++)
            {
                a=v[i][j];
                if(x[i]==1)
                a=v[i][j]*y;
                a=a*y;
                t2=t2+a;
            }
            for(int i=1; i<=n; i++)
            {
                a=v[i][j];
                if(x[i]==1)
                a=v[i][j]*y;
                t=t+a;
                if(t>t2)break;
            }
            if(t2>t)
            s=s+t2-t;
        }
        if(s>maxnr)
        maxnr=s;
        poz=1;
        while(x[poz]==1)
        {
            x[poz]=0;
            poz++;
        }
        x[poz]=1;
    }
    cout<<maxnr;

    return 0;
}