Cod sursa(job #1173370)

Utilizator moga_florianFlorian MOGA moga_florian Data 19 aprilie 2014 14:39:37
Problema Jocul Flip Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.35 kb
#include<stdio.h>

FILE *fin=fopen("flip.in","r"), 
     *fout=fopen("flip.out","w");  

int t[16][16];

void baza2(int x) {
    for (int b=9; b>=0; b--) {
        if ( ((1 << b) & x) == 0) {
            fprintf(fout, "%d", 0);
        } else {
            fprintf(fout, "%d", 1);
        }
    }
    fprintf(fout, "\n");
}

int main() {
    // citire
    int nl, nc;
    fscanf(fin, "%d %d", &nl, &nc);
    for (int i=0; i<nl; i++) {
        for (int j=0; j<nc; j++) {
            fscanf(fin, "%d", &t[i][j]);
        }
    }

    int smax = -256000001;
    for (int cl = 0; cl < (1<<nl); cl++) {
        for (int cc = 0; cc < (1<<nc); cc++) {
            int s = 0;        
            for (int i = 0; i < nl; i++) {
                for (int j = 0; j < nc; j++) {
                    int linia_comutat = 0; 
                    if ((cl & (1<<i)) != 0) {
                        linia_comutat = 1;
                    }

                    int col_comutat = 0;
                    if ((cc & (1<<j)) != 0) {
                        col_comutat = 1;
                    }

                    if (linia_comutat == col_comutat) {
                        s = s + t[i][j];
                    } else {
                        s = s - t[i][j];
                    }
                }
            }

            if (smax < s) smax = s;
        }
    }

    fprintf(fout, "%d\n", smax);
}