Cod sursa(job #1197638)

Utilizator mmt322Ingeaua Cristian mmt322 Data 13 iunie 2014 06:36:06
Problema Jocul Flip Scor 100
Compilator c Status done
Runda Arhiva de probleme Marime 1.03 kb
#include <stdio.h>
int maxSum = 0;
int array[17][17], lineC, colC, flipArray[17];
void detSum(){
    register int i,j;
    int cSum = 0, tSum =0;
    for(i = 0; i < colC; ++i){
        cSum = 0;
        for(j = 0; j < lineC; ++j){
            cSum += (array[j][i] * flipArray[j]);
        }
        if(cSum < 0) cSum *= -1;
        tSum += cSum;
    }
    if(maxSum < tSum) maxSum = tSum;
}
void startBack(int lineIndex){
    register int i;
    if(lineIndex == lineC + 1 )
        detSum();
    else
        for(i = -1; i < 2; i+=2){
            flipArray[lineIndex] = i;
            startBack(lineIndex + 1);
        }
}
int main(void){
    FILE *in, *out;
    register int i,j;
    in = fopen("flip.in", "r");
    out = fopen("flip.out", "w+");
    fscanf(in, "%d", &lineC);
    fscanf(in, "%d", &colC);
    for(i = 0; i < lineC; ++i)
        for(j = 0; j < colC; ++j)
            fscanf(in, "%d", &array[i][j]);
    startBack(0);
    fprintf(out, "%d", maxSum);
    close(in);
    close(out);
    return 0;
}