Cod sursa(job #594564)

Utilizator rudarelLup Ionut rudarel Data 8 iunie 2011 13:04:03
Problema Jocul Flip Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.08 kb
#include<fstream>
#include<iostream.h>
using namespace std;
ifstream fin("flip.in");
ofstream fout("flip.out");
long a[17][17],sumcol[17],smax=-32000000,sol[17];
int n,m;
void rez()
{
    int i,j,s=0;
    for(i=1;i<=m;i++)
        sumcol[i] = 0;
    for(j=1;j<=m;j++)
    {
        for(i=1;i<=n;i++)
            if(sol[i])
                sumcol[j]-=a[i][j];
            else
                sumcol[j]+=a[i][j];
    }
    for(i=1;i<=m;i++)
        if(sumcol[i] < 0)
        {
            for(j=1;j<=n;j++)
                if(sol[j])
                    s+=a[j][i];
                else
                   s-=a[j][i];
        }
        else
            s+=sumcol[i];
    if(s > smax)
        smax = s;
}          
void Gen(int k)
{
    int i; 
    for(i=0;i<=1;i++)
    {
        sol[k] = i;
        if(k == n)
            rez();
        else
            Gen(k+1);
    }
}
int main()
{  
    fin>>n>>m;
    for(int i=1;i<=n;i++)
        for(int j=1;j<=m;j++)
            fin>>a[i][j];
    Gen(1);
    fout<<smax<<"\n";
    cout<<smax;
    return 0;
}