Cod sursa(job #1363412)

Utilizator dumitrubogdanDumitru Bogdan Mihai dumitrubogdan Data 26 februarie 2015 22:39:53
Problema Jocul Flip Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.29 kb
#include <iostream>
#include <stdio.h>

using namespace std;

    long a[17][17];
    int cx[17];
    int x,y;
    long Smax=-99999999,Sinit;

void Afisare_Gen(){
    for(int i=0; i<x; i++){
        printf("%d",cx[i]);
    }
    printf("\n");
}

void Sum_Max(){
    int i,j,Slin=0,Stot=0;
        for(i=0;i<y;i++){
        Slin=0;
            for(j=0;j<x;j++){
            if(cx[j]==1){
                Slin-=a[i][j];
            }
            else {
                Slin+=a[i][j];
            }
        }
        if(Slin<0){
            Slin=-Slin;
            //printf("\nlin %d \n",i);
        }
        Stot+=Slin;
    }
    if(Stot>Smax){
        Smax=Stot;
        //Afisare_Gen();
    }
}

void Gen(int contor){
    if(contor >= x){
        Sum_Max();
        //Afisare_Gen();
    }
    else {
        cx[contor]=0;
        Gen(contor+1);
        cx[contor]=1;
        Gen(contor+1);
    }
}


int main()
{
    FILE *f=fopen("flip.in","r");
    FILE *g=fopen("flip.out","w");
    fscanf(f,"%d%d",&y,&x);
    for(int i=0; i<y; i++){
        for(int j=0; j<x; j++){
            fscanf(f,"%d",&a[i][j]);
            Sinit+=a[i][j];
        }
    }
    Gen(0);
    cout<<Smax;
    fprintf(g,"%d",Smax);
    fclose(f);
    fclose(g);
    return 0;
}