Cod sursa(job #1208823)

Utilizator icristi01Cristian Ilca icristi01 Data 16 iulie 2014 17:18:36
Problema Jocul Flip Scor 30
Compilator c Status done
Runda Arhiva de probleme Marime 1.75 kb
#include <stdio.h>

int arraySum(long a[], int size) {
    int sum=0,i=0;
    for(i=0; i<size; i++)
        sum+=a[i];
    return sum;
}

void displayMatrix(int a[16][16], int n, int m) {
    int i=0, j=0;
    printf("The matrix: \n");
    for(i=0;i<n;i++) {
        for(j=0;j<m;j++) {
        }
        printf("\n");
    }
}

long matrixSum(long a[16][16], int n, int m) {
    int i=0, j=0;
    long sum=0;
    for(i=0; i<n; i++) {
        for(j=0; j<m; j++) {
            sum+=a[i][j];
        }
    }
    return sum;
}

int main(){
    FILE *f, *g;
    int n,m,i,i1,j,j1,rowC=0, colC=0;
    long matrix[16][16], rowToFlip[16], invertedRow[16], colToFlip[16], invertedCol[16];
    f=fopen("flip.in","r");
    g=fopen("flip.out","w");
    fscanf(f,"%d %d",&n,&m);
    for(i=0;i<n;i++) {
        for(j=0;j<m;j++) {
            fscanf(f,"%ld ",&matrix[i][j]);
        }
    }
	for(j=0; j<m; j++) {
        for(i=0; i<n; i++) {
            colToFlip[colC] = matrix[i][j];
            invertedCol[colC] = colToFlip[colC]*(-1);
            colC++;
        }
        if(arraySum(colToFlip, colC) < arraySum(invertedCol, colC)) {
                for(i1=0; i1<n; i1++) {
                    matrix[i1][j]*=-1;
                }
        }
        colC=0;
    }
    for(i=0;i<n;i++)
    {
        for(j=0;j<m;j++)
        {
            rowToFlip[rowC] = matrix[i][j];
            invertedRow[rowC] = rowToFlip[rowC]*(-1);
            rowC++;
        }
        if(arraySum(rowToFlip, rowC) < arraySum(invertedRow, rowC)) {
            for(j1=0; j1<m; j1++) {
                matrix[i][j1]*=-1;
            }
        }
        rowC=0;
    }
    fprintf(g,"%ld",matrixSum(matrix, n, m));
    fclose(f);
    fclose(g);
    return 0;
}