Cod sursa(job #1652155)

Utilizator dragos000Cojanu Dragos dragos000 Data 14 martie 2016 18:40:48
Problema Jocul Flip Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.13 kb
#include <iostream>
#include <fstream>
#include <cmath>

using namespace std;

int mat[17][17],n,m,s;

void citire()
{
    ifstream f("flip.in");
    f>>n>>m;
    for(int i=1;i<=n;i++)
        for(int j=1;j<=m;j++)
        {f>>mat[i][j];
        s+=mat[i][j];}
    f.close();
}

int fct()
{
    int z=0;
    for(int i=1;i<=n;i++)
        for(int j=1;j<=m;j++)
        z+=mat[i][j];
        return z;
}



void parcurgere(int k)
{
    if(k==n)
    {
       int z=fct();
       z=fabs(z);
        if(z>s)s=z;
    }
    else for(int i=0;i<4;i++)
    {
        if(i==1)
        {
            for(int j=1;j<=n;j++)
                mat[j][k]*=(-1);
        }
        if(i==2)
        {
            for(int j=1;j<=m;j++)
                mat[k][j]*=(-1);
        }
        if(i==3)
        {
            for(int j=1;j<=m;j++)
                mat[k][j]*=(-1);
                for(int j=1;j<=n;j++)
                mat[j][k]*=(-1);
        }
        parcurgere(k+1);
    }

}




int main()
{
    citire();
    parcurgere(1);
    ofstream g("flip.out");
    g<<s;
    g.close();
    return 0;
}