Cod sursa(job #1987186)

Utilizator DavidLDavid Lauran DavidL Data 29 mai 2017 21:33:00
Problema Jocul Flip Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.02 kb
#include <fstream>
#include <cmath>
#define MAX 20
using namespace std;
ifstream fi("flip.in");
ofstream fo("flip.out");

int a[MAX][MAX],p[MAX],sl[MAX],sc[MAX],m,n;
int sch[MAX],sl2[MAX],sc2[MAX];
int rez;
///in p avem liniile care sunt schimbate

void bkt(int poz)
{
    if (poz>1)
    {
        int sum=0;
        for (int i=1; i<=n; i++)
            sl2[i]=sl[i];
        for (int j=1; j<=m; j++)
            sc2[j]=sc[j];

        for (int i=1; i<poz; i++)
            for (int j=1; j<=m; j++)
                sc2[j]-=2*a[p[i]][j];

        for (int j=1; j<=m; j++)
            sum+=abs(sc2[j]);
        rez=max(rez,sum);
    }
    for (int i=p[poz-1]+1; i<=n; i++)
    {
        p[poz]=i;
        bkt(poz+1);
    }
}

int main()
{
    fi>>n>>m;
    for (int i=1; i<=n; i++)
        for (int j=1; j<=m; j++)
        {
            fi>>a[i][j];
            sl[i]+=a[i][j];
            sc[j]+=a[i][j];
        }
    bkt(1);
    fo<<rez;
    fi.close();
    fo.close();
    return 0;
}