Cod sursa(job #959853)

Utilizator TarabanDragosTaraban Dragos-Petru TarabanDragos Data 9 iunie 2013 02:06:56
Problema Jocul Flip Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.82 kb
#include<cstdio>
#include<string.h>
int m,n,max,v[18],x[18][18],y[18][18],k,j,i,s,sl;
FILE *f,*g;
int main(){
	f=fopen("flip.in","r");	
	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",&x[i][j]);
		}
	}
	memcpy(y,x,sizeof(x));
	max=0;
	while(v[0]==0){
		i=m;
		while(v[i]==1){
			v[i]=0;
			i--;
		}
		v[i]++;
		s=0;
		for(i=1;i<=m;i++){
			if(v[i]==1){
				for(j=1;j<=n;j++){
					x[j][i]*=-1;
				}
			}
		}
		for(i=1;i<=n;i++){
			sl=0;
			for(j=1;j<=m;j++){
				sl+=x[i][j];
			}
			if(sl<0){
				for(j=1;j<=n;j++){
					x[i][j]*=-1;
				}
			}
		}
		for(i=1;i<=n;i++){
			for(j=1;j<=m;j++){
				s+=x[i][j];
			}
		}
		if(s>max)
			max=s;
		memcpy(x,y,sizeof(y));
	}
	fprintf(g,"%d",max);
	fclose(f);
	fclose(g);
return 0;
}