Cod sursa(job #387330)

Utilizator delia_popescupopescu delia delia_popescu Data 27 ianuarie 2010 12:55:23
Problema Jocul Flip Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.89 kb
#include<stdio.h>

int n,i,j,k,m, a[18][18], v[18*18], b[18][18],max,s,suma;

int main(){
	FILE * f= fopen("flip.in","r");
	FILE * g= fopen("flip.out","w");
	
	fscanf(f,"%d %d",&n, &m);
	for(i=1; i<=n ;i++)
		for (j=1; j<=m; j++){
			fscanf(f,"%d" ,&a[i][j]);
		}
		
		
	while(v[0]!=1){
		k=m;
		while(v[k]==1){
			v[k]=0;
			k--;
		}
		v[k]=1;
		for (i=1; i<=n;i++)
			for (j=1; j<=m; j++)
				b[i][j]=a[i][j];
			//formam matricea b egala cu a
		
		for(i=1; i<=m; i++)
			if (v[i]==1)
				for(j=1; j<=n; j++)
					b[j][i]=-a[j][i];
						//interschimbam coloanele care au v[i]=1
		suma=0;
		for (i=1;i<=n;i++){
//calculam suma pe fiecare coloana si verificam daca este mai mare decat 0
			s=0;
			for (j=1; j<=m;j++)
				s+=b[i][j];
			if (s<0)
				s=-s;
			suma+=s;
		}
		if (suma>max)
			max=suma;
	}
	fprintf(g,"%d", max);
	fclose(f);
	fclose(g);
	return 0;
}