Cod sursa(job #1054676)

Utilizator deaconusabinDeaconu Sabin deaconusabin Data 14 decembrie 2013 02:03:14
Problema Jocul Flip Scor 30
Compilator c Status done
Runda Arhiva de probleme Marime 1.32 kb
#include <stdio.h>
 
long long sum_matrix(int matrix[16][16],int lines, int cols)
{
    long long 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);
}

long long calcLine(int matrix[16][16], int n, int m, int no)
{
    long long sum = 0;
    int i = 0;
    if(no < n)
        for(i=0;i<m;i++)
            sum+=matrix[no][i];
    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 %d", &n,  &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("%lld",sum_matrix(matrix,n,m));
    fclose(stdout);
    fclose(stdin);
    return 0;
}