Cod sursa(job #832947)

Utilizator dantheroDan Terhesiu danthero Data 11 decembrie 2012 18:44:37
Problema Jocul Flip Scor 100
Compilator c Status done
Runda Arhiva de probleme Marime 1.16 kb
#include <stdio.h>
#include <stdlib.h>

#define MAX 16
int A[MAX][MAX];
unsigned int m, n;
int maxim;

int readMatrix()
{
    int i, j;
    FILE *fin = fopen("flip.in", "r");
    if (!fin || fscanf(fin, "%u %u", &m, &n)!=2)
    {
        return 0;
    }
    for (i=0; i<m; i++)
    {
        for (j=0; j<n; j++)
        {
            fscanf(fin, "%d", &A[i][j]);
        }
    }
    fclose(fin);
    return 1;
}
void maximl(int lin)
{
    int i, j, sum=0, sumc=0;
    if (lin==m)
    {
    	sum=0;
    	for (j=0; j<n; j++)
    	{
    		sumc=0;
    		for (i=0; i<m; i++)
    		{
    			sumc+=A[i][j];
    		}
    		if (sumc<0)
    		{
    			sumc*=-1;
    		}
    		sum+=sumc;
    	}
    	if (maxim<sum)
    	{
    		maxim=sum;
    	}
    }
    else
    {
    	maximl(lin+1);
    	for (j=0; j<n; j++)
		{
    		A[lin][j]*=-1;
    	}
    	maximl(lin+1);
    }
}
void printResult()
{
    FILE *fout = fopen("flip.out", "w");
    if (!fout || !fprintf(fout, "%d", maxim))
    {
        return 0;
    }
    fclose(fout);
    return 1;
}
int main()
{
    readMatrix();
    maximl(0);
    printResult();
    return 0;
}