Cod sursa(job #1699493)

Utilizator Belu99Bibo Bela Belu99 Data 7 mai 2016 15:28:31
Problema Jocul Flip Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.7 kb
#include <iostream>
#include <fstream>
using namespace std;
int n,m,a[16][16];
long ma=0;
void verificare(int a[16][16])
{
    int s=0,i,j;
    for(i=1;i<=n;i++)
        for(j=1;j<=m;j++)
        s=s+a[i][j];
    if(s>ma)
        ma=s;
}
void bkt3()
{
    int i,j,q,l;
    for(q=1;q<=m;q++)
    {
        for(l=1;l<=n;l++)
            a[l][q]=a[l][q]*(-1);
        verificare(a);
            for(i=1;i<=n;i++)
            {
                for(j=1;j<=m;j++)
                    a[i][j]=a[i][j]*(-1);
                verificare(a);
                for(j=1;j<=m;j++)
                    a[i][j]=a[i][j]*(-1);
            }
         for(l=1;l<=n;l++)
            a[l][q]=a[l][q]*(-1);
    }
    for(i=1;i<=n;i++)
    {
        for(j=1;j<=m;j++)
            a[i][j]=a[i][j]*(-1);
        verificare(a);
        for(j=1;j<=m;j++)
            a[i][j]=a[i][j]*(-1);
    }
}
void bkt2(int k2)
{
    int i,j;
    if(k2<=2)
        {
            for(j=1;j<=m;j++)
            {
                for(i=1;i<=n;i++)
                    a[i][j]=a[i][j]*(-1);
                verificare(a);
            }
            bkt2(k2+1);
        }
}
void bkt1(int k)
{
    ofstream g("flip.out");
    int i,j;
    if(k<=2)
    {
        for(i=1;i<=n;i++)
        {
            for(j=1;j<=m;j++)
                a[i][j]=a[i][j]*(-1);
            bkt2(1);
        }
        bkt1(k+1);
    }
    else
        g<<ma;
}
int main()
{
    int i,j;
    ifstream f("flip.in");
    f>>n;
    f>>m;
    for(i=1;i<=n;i++)
        for(j=1;j<=m;j++)
            {
                f>>a[i][j];
                ma=ma+a[i][j];
            }
    bkt3();
    bkt2(1);
    bkt1(1);
    return 0;
}