Cod sursa(job #118236)

Utilizator brancoCristian Achim branco Data 23 decembrie 2007 21:24:18
Problema Jocul Flip Scor 100
Compilator c Status done
Runda Arhiva de probleme Marime 1.09 kb
#include <stdio.h>
#include <stdlib.h>

long long int sum;
int height , width;
long int matrice[16][16];

int i , j;
unsigned short int loop;
long long int auxsum;

void check(unsigned short int loop , long long int sumc[16]){
	for(i=0 ; i<height ; i++){
		if( ( (loop >> i) % 2) == 0 ){		
			for(j=0 ; j<width ; j++){
				sumc[j]=sumc[j] + matrice[i][j];
			}
		}
		else{
			for(j=0 ; j<width ; j++){
				sumc[j]=sumc[j] - matrice[i][j];
			}
		}	
	}


	auxsum=0;
	for(i=0 ; i<width ; i++){
		if(sumc[i] < 0){
			auxsum=auxsum - sumc[i];
		}
		else{
			auxsum=auxsum + sumc[i];
		}
		sumc[i]=0;
	}

	if(auxsum > sum){
		sum=auxsum;
	}
}

int main(int argc , char *argv[]){
	FILE *f;
	FILE *g;

	f=fopen("flip.in" , "r");
	g=fopen("flip.out" , "w");

	long long int sumc[16];
	for(i=0 ; i<16 ; i++){
		sumc[i]=0;
	}

	fscanf(f , "%d %d" , &height , &width);
	for(i=0 ; i<height ; i++){
		for(j=0 ; j<width ; j++){
			fscanf(f , "%ld" , &matrice[i][j]);
		}
	}

	for(loop=0 ; loop < 65535 ; loop++){
		check(loop , sumc);
	}
	check(loop , sumc);

	fprintf(g , "%lld" , sum);

	fclose(f);
	fclose(g);

	return 0;
}