Cod sursa(job #1814787)

Utilizator 1475369147896537415369Andrei Udriste 1475369147896537415369 Data 24 noiembrie 2016 15:56:37
Problema Jocul Flip Scor 30
Compilator c Status done
Runda Arhiva de probleme Marime 1.46 kb
#include <stdio.h>

FlipLine();
FlipCoulumn();
int Sum();

int matrix[16][16];
int row, col;

int main(){

FILE *file1, *file2;
int i, j, posSum, negSum, sum;

file1 = fopen("flip.in", "r");
file2 = fopen("flip.out", "w");

fscanf(file1, "%d", &row);
fscanf(file1, "%d", &col);

for(i=0; i<row; i++)
    for(j=0; j<col; j++){
        fscanf(file1, "%d", &matrix[i][j]);
    }


FlipLine();
FlipColumn();
FlipLine();
FlipColumn();
FlipLine();
FlipColumn();
FlipLine();
FlipColumn();
FlipLine();
FlipColumn();
FlipLine();
FlipColumn();
FlipLine();
FlipColumn();

fprintf(file2, "%d", Sum());

return 0;
}

FlipLine(){

int i, j;

for(j=0; j<col; j++){

int posSum = 0;
int negSum = 0;

    for(i=0; i<row; i++){
        if(matrix[i][j]>=0)
            posSum += matrix[i][j];
        else
            negSum += matrix[i][j];
    }
    if(-negSum>posSum){
        for(i=0; i<row; i++){
            matrix[i][j] *= -1;
        }
    }
}
}

FlipColumn(){

int i, j;

for(i=0; i<row; i++){

int posSum = 0;
int negSum = 0;

    for(j=0; j<col; j++){
        if(matrix[i][j]>=0)
            posSum += matrix[i][j];
        else
            negSum += matrix[i][j];
    }
    if(-negSum>posSum){
        for(j=0; j<col; j++){
             matrix[i][j] *= -1;
        }
    }
}
}

int Sum(){

int i, j, sum=0;

for(i=0; i<row; i++)
    for(j=0; j<col; j++)
        sum += matrix[i][j];
return sum;
}