Cod sursa(job #386952)

Utilizator Robert29FMI Tilica Robert Robert29 Data 26 ianuarie 2010 13:21:20
Problema Jocul Flip Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.81 kb
#include <stdio.h>
#define DIM 18

int A[DIM][DIM];
int B[DIM][DIM];

int V[18];

int n,m,i,j,max,k,s,S;

int main(){
	FILE *f = fopen("flip.in","r");
	fscanf(f,"%d %d",&n, &m);
	for (i=1;i<=n;i++)
		for (j=1;j<=m;j++)
			fscanf(f,"%d",&A[i][j]);
	fclose(f);
	
	max = 0;
	
	while (V[0]!=1) {
		
		
		for (i=1;i<=n;i++)
			for (j=1;j<=m;j++)
				B[i][j] = A[i][j];
		
		for (j=1;j<=m;j++) 
			if (V[j] == 1) {
				for (i=1;i<=n;i++)
					B[i][j] = -B[i][j];
			}
		
		S = 0;
		
		for (i=1;i<=n;i++) {
			s = 0;
			for (j=1;j<=m;j++)
				s+=B[i][j];
			
			if (s>0)
				S+=s;
			else
				S-=s;
		}
		
		if (S>max)
			max = S;
		
		k = m;
		while (V[k]==1)
			V[k--] = 0;
		V[k] = 1;
	}
	
	FILE *g = fopen("flip.out","w");
	fprintf(g,"%d",max);
	fclose(g);
	
	return 0;
}