Cod sursa(job #1054673)

Utilizator deaconusabinDeaconu Sabin deaconusabin Data 14 decembrie 2013 01:28:32
Problema Jocul Flip Scor 30
Compilator c Status done
Runda Arhiva de probleme Marime 1.38 kb
#include <stdio.h>
 
int sum_matrix(int matrix[16][16],int lines, int cols)
{
    int sum = 0;
    int i,j;
    for (i=0; i < lines; i++)
        for (j=0; j < cols; j++)
            sum+= matrix[i][j];
 
    return sum;
}
void changeLine(int matrix[16][16], int n, int m, int no)
{
    int i = 0;
    if(no < n)
        for( i=0; i<m; i++)
            matrix[no][i]*=(-1);
    else if(no < n+m)
        for( i=0; i<n; i++)
            matrix[i][no % n]*=(-1);
}

int calcLine(int matrix[16][16], int n, int m, int no)
{
    int sum = 0;
    int i = 0;
    if(no < n)
    {
        for(i = 0;i < m;i++)
            sum+=matrix[no][i];
        return sum;
    }
    else if(no < n+m)
    {
        for(i = 0;i < n;i++)
            sum+=matrix[i][no % n];
        return sum;
    }
}
 
int main()
{
    freopen ("flip.in","r",stdin);
    freopen ("flip.out","w",stdout);
     
    int n,m;
    int matrix[16][16];
    scanf("%d", &n);
    scanf("%d", &m);
    int i=0, j=0;
     
    for (i =0 ; i < n; i++ )
        for (j=0; j < m; j++)
            scanf("%d", &matrix[i][j]);
 
    for(i= 0; i< n+m ; i++)
    {
        if(calcLine(matrix, n, m, i)< 0)
        {
            changeLine(matrix, n, m, i);
            i = -1;
        }
    }
    
    printf("%d",sum_matrix(matrix,n,m));
    fclose(stdout);
    fclose(stdin);
    return 0;
}