Cod sursa(job #1610166)

Utilizator AndreidgDragomir Andrei Valentin Andreidg Data 23 februarie 2016 12:18:44
Problema Jocul Flip Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.21 kb
#include <fstream>
using namespace std;
ifstream f("flip.in");
ofstream g("flip.out");
int main()
{
    int n,m,k;
    int i,j,l;
    int a[17][17],bit[20];
    int x,p,S=0,Max;
    int sn[20],sp[20],semn;
    Max=-99999999;
    f>>n>>m;
    for(i = 1;i <= n; i++){
        for(j = 1;j <= m; j++){
            f>>a[i][j];
        }
    }
    k=(1 << m);
    for(l = 0;l < k; l++){
        x=l;
        p=1;
        while(x){
            if(x % 2 == 1){bit[p]=1;}
            else{bit[p]=0;}
            x=x/2;
            p++;
        }
        S=0;
        for(i = 1;i <= n; i++){
            sn[i]=0;
            sp[i]=0;
            for(j = 1;j <= m; j++){
                if(bit[j]==1)
                {
                    semn=-1;
                }
                else
                {
                    semn=1;
                }
                sp[i]+=semn*a[i][j];
                sn[i]-=semn*a[i][j];
            }
            if(sp[i]>sn[i])
            {
                S+=sp[i];
            }
            else
            {
                S+=sn[i];
            }
        }
        if(S > Max){Max=S;}
    }
    g<<Max;
    f.close();
    g.close();
    return 0;
}