Cod sursa(job #2325784)

Utilizator sebastianp2003Popa Sebastian sebastianp2003 Data 22 ianuarie 2019 22:02:39
Problema Jocul Flip Scor 10
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.99 kb
#include <bits/stdc++.h>

using namespace std;
ifstream f("flip.in");
ofstream g("flip.out");
int n,m,v[30][30],maxim;
void sl(int i)
{
    for(int j=1;j<=m;j++)v[i][j]*=-1;
}
void sc(int j)
{
    for(int i=1;i<=n;i++)v[i][j]*=-1;
}

int a[100];int suma();
bool gas(int x,int y)
{
    for(int i=1;i<y;i++)
    if(a[i]==x){return 1;break;}
    return 0;
}
void back(int k)
{
    for(int i=1;i<=n+m;i++)
    {
        if(i<=n)
        {
            if(!gas(i,k))a[k]=i,sl(i),maxim=max(maxim,suma()),back(k+1),sl(i);
        }
        else
            if(!gas(i,k))a[k]=i,sc(n+m-i),maxim=max(maxim,suma()),back(k+1),sc(n+m-i);
    maxim=max(maxim,suma());
    }
}

int main()
{
    f>>n>>m;

    for(int i=1;i<=n;i++)
        for(int j=1;j<=m;j++)
            f>>v[i][j];maxim=suma();
    back(1);
    g<<maxim;
    return 0;
}
int suma()
{
    int s=0;
    for(int i=1;i<=n;i++)
        for(int j=1;j<=m;j++)
            s+=v[i][j];
            return s;
}