Cod sursa(job #1614890)

Utilizator SerjBossDeBossSergiu Apostu SerjBossDeBoss Data 26 februarie 2016 11:40:50
Problema Jocul Flip Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.1 kb
#include <fstream>

using namespace std;
ifstream f("flip.in");
ofstream g("flip.out");

int s[100],n,m,a[17][17],sum[17],sum1[17],tmax;


void calcul()
{
    int t=0,i,j;
    for(i=1;i<=n+m;i++) sum1[i]=sum[i];
    for(int i=1;i<=n+m;i++)
        {
            if(s[i]==1)
            {
                sum1[i]=-sum1[i];
                if(i<=n)
                        for(j=1;j<=m;j++) sum1[j+n]=sum1[j+n]-2*a[i][j];
                else
                    for(j=n+1;j<=n+m;j++) sum1[j]=sum1[j]-2*a[i][j-n];
            }

        }
     for(i=n+1;i<=n+m;i++)
        t=t+sum1[i];
      if(t>tmax) tmax=t;
}

void genereaza(int k)
{
    for(int i=0;i<=1;i++)
    {
        s[k]=i;

        if(k==n+m) calcul();
        else genereaza(k+1);
    }
}

int main()
{   f>>n>>m;
    int i,j;
    for(i=1;i<=n;i++)
        for(j=1;j<=m;j++) f>>a[i][j];

    for(i=1;i<=n;i++)
        for(j=1;j<=m;j++) sum[i]=sum[i]+a[i][j];
    for(j=1;j<=m;j++)
        for(i=1;i<=n;i++) sum[j+n]=sum[j+n]+a[i][j];

    genereaza(1);

    g<<tmax;

    f.close();g.close();
    return 0;
}